GVKun编程网logo

我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?

3

关于我在ADF中工作,我需要将数据从sql源导出到Excel目标,有没有办法在ADF中使用Excel(.xlsx)作为目标?笔记本?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.xls

关于我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.xlsx 空数据框的 pd.ExcelFile()必须打开并保存 .xlsx 才能让 pd.ExcelFile() 工作、ADF:ADF 重新部署后自托管集成运行时不可用、C# 导入 Excel、Excel 导入、导入.xls 、导入.xlsx、Excel2003 版本、Excel2007 版本、ERROR:Xst:871 - 无效使用输入信号 < M > 作为目标等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?

我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?

如何解决我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?

我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?

解决方法

只是猜测 - 使用 CSV 作为目标并在属性中使用 - 将 .xlsx 作为文件后缀 - 它可能会起作用,但您必须使用逻辑应用程序等从 blob 存储下载文件。

,

是的,ADF 中不支持 Excel 作为接收器。使用 Notebook 是实现这一目标的一种方式。 ADF 中的另一种方法是创建一个 Azure 函数,然后通过 Azure Function activity 调用它。

.xlsx 空数据框的 pd.ExcelFile()必须打开并保存 .xlsx 才能让 pd.ExcelFile() 工作

.xlsx 空数据框的 pd.ExcelFile()必须打开并保存 .xlsx 才能让 pd.ExcelFile() 工作

如何解决.xlsx 空数据框的 pd.ExcelFile()必须打开并保存 .xlsx 才能让 pd.ExcelFile() 工作

标题是一个简明的摘要。我有一份报告,从 Attentive 下载。此报告在我的下载中另存为 .xlsx。我用熊猫的 ExcelFile() 函数阅读了这份报告,它给出了以下警告:

  1. UserWarning: Workbook contains no default style,apply openpyxl''s default
  2. warn("Workbook contains no default style,apply openpyxl''s default")

并且数据帧返回为

  1. {''One-Time Messages'': Empty DataFrame
  2. Columns: [Date]
  3. Index: []}

使用 .parse() 后。

但是

当我打开文件时,保存它(覆盖当前),然后关闭这些功能完美地工作。我可以说我认为 .xlsx 没有问题(它不是 Strict 版本)并且似乎没有其他任何变化,但在我打开它之前无法验证之前,所以我怀疑它是如何下载的以及何时打开所谓的样式表已应用。

我该如何解决这个问题?

ADF:ADF 重新部署后自托管集成运行时不可用

ADF:ADF 重新部署后自托管集成运行时不可用

如何解决ADF:ADF 重新部署后自托管集成运行时不可用

我正在使用 ADF 与 GIT 集成。我使用密钥创建了自托管集成和注册节点。好几天了。

然后我删除了 ADF 实例并创建了新实例并将其映射到同一个 GIT 存储库。现在,管道、数据集、链接服务和集成运行时已在 ADF 的新实例中正确恢复。

但问题在于自托管集成运行时。我可以在列表中看到自托管集成运行时,但出现错误“无法获取状态”并且不可用。我验证了 IR 配置管理器仍在运行的节点上,它显示它已连接到自托管运行时。但是在 ADF 上,我收到了上述错误。

重现步骤:

  1. 创建 ADF
  2. 链接到 Git 存储库
  3. 创建自托管 IR
  4. 在节点上下载并安装 IR
  5. 验证集成工作正常
  6. 删除 ADF 实例
  7. 创建新实例并将其链接到同一个 GIT 存储库
  8. 恢复所有管道、数据集、链接服务
  9. 自托管 IR 显示“无法获取状态”错误。

问题:

  1. 这是一种例外行为吗,意味着每当我删除 ADF 实例并创建一个新实例时,原来的自托管 IR 将无效,我需要创建新的实例?
  2. 如果不是,那可能是什么问题?
  3. 如果是,那么在 GIT 存储库中保存这个自托管的 IR 有什么好处?我将使用 terraform 管道并将破坏在不同环境中重新创建的 ADF 实例。如果删除 ADF 后自托管的 IR 将失效,是否有办法处理此问题?

解决方法

自托管 IR 只能用于将一台机器连接到单个数据工厂。

但是我们可以在 Azure 数据工厂中创建一个共享的自承载集成运行时。然后你可以在另一个数据工厂中使用共享的自承载集成运行时。

请按照以下步骤创建共享的自托管 IR:

  1. 在要共享的自托管 IR 中,选择向另一个数据工厂授予权限,然后在“集成运行时设置”页面中,选择要在其中创建链接 IR 的数据工厂。

  1. 注意并复制要共享的自托管 IR 的上述“资源 ID”。
  2. 在授予权限的数据工厂中,创建一个新的自托管 IR(链接)并输入资源 ID。请按照以下步骤操作:

C# 导入 Excel、Excel 导入、导入.xls 、导入.xlsx、Excel2003 版本、Excel2007 版本

C# 导入 Excel、Excel 导入、导入.xls 、导入.xlsx、Excel2003 版本、Excel2007 版本

private void Import()
{  
      //打开excel选择框
OpenFileDialog frm = new OpenFileDialog(); frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx"; if (frm.ShowDialog() == DialogResult.OK) { string excelName = frm.FileName; Workbook excel = new Workbook(excelName); List<string[]> importyString=GetImportExcelRoute(excel);
}
}
//循环遍历获取excel的中每行每列的值  
public List<string[]> GetImportExcelRoute(Workbook excel) { int icount = excel.Worksheets.Count; List<string[]> routList = new List<string[]>(); for (int i = 0; i < icount; i++) { Worksheet sheet = excel.Worksheets[i]; Cells cells = sheet.Cells; int rowcount = cells.MaxRow; int columncount = cells.MaxColumn; int routNameColumn = 0; int routAttachColumn = 0; int routDescColumn = 0; int routMesgColumn = 0; //获取标题所在的列
if (rowcount > 0 && columncount > 0) { //找到对应的列信息 int r0 = 2; for (int c = 0; c <= columncount; c++) { string strVal = cells[r0, c].StringValue.Trim(); if (strVal == "备注") { routDescColumn = c; break; } } r0 = 3; for (int c = 0; c <= columncount; c++) { //获取文本框内容 string strVal = cells[r0, c].StringValue.Trim(); if (strVal == "审批明细事项") { routNameColumn = c; } if (strVal == "细项") { routMesgColumn = c; } if (strVal == "前置条件及工作要求") { routAttachColumn = c; } } //找到对应标题列下面的值 if (routNameColumn > 0 && routAttachColumn > 0 && routDescColumn > 0) {//在从对应的列中找到对应的值 for (int r = 4; r <= rowcount; r++) { string[] str = new string[6]; string strRoutName = ""; string strRoutMesg = ""; string strRoutAttach = ""; string strRoutDesc = ""; string strRoutRole = ""; string strRoutPro = ""; for (int c = 0; c <= columncount; c++) { int mergcolumncount = 0; int mergrowcount = 0; bool ismerged = cells[r, c].IsMerged;//是否合并单元格 if (ismerged) { Range range = cells[r, c].GetMergedRange(); if (range != null) { mergcolumncount = range.ColumnCount; mergrowcount = range.RowCount; } } //获取文本框内容 string strVal = ""; strVal = cells[r, c].StringValue.Trim(); if (c == routNameColumn) { strRoutName = strVal; if (mergrowcount > 1 && string.IsNullOrEmpty(strRoutName)) { strRoutName = GetRoutName(routList, 0); } } if (c == routMesgColumn) { strRoutMesg = strVal; if (mergrowcount > 1 && string.IsNullOrEmpty(strRoutMesg)) { strRoutMesg = GetRoutName(routList, 1); } } if (c == routAttachColumn) { strRoutAttach = strVal; } if (c == routDescColumn) { strRoutDesc = strVal; }
}
}
}

  private string GetRoutName(List<string[]> routList, int index)
        {
            if (routList == null)
                return "";
            if (routList.Count == 0)
                return "";
            return routList[routList.Count - 1][index];
        }


可以看到导入是比较简单的,就是循环读取每行每列的值,可以看到文中有不少 Cells 这个属性,这个需要用到第三方的插件:using Aspose.Cells; 需要在网上下载一个 Aspose.Cells 的 dll.

 

二、导出,就是将数据组合好后导成 excel 格式:

private void Export()
{
             SaveFileDialog frm = new SaveFileDialog();
                frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
                frm.FileName = flowName + ".xlsx";
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    string strpath = frm.FileName;
                    Workbook workbook = null;
                string strpath = _exportFlowRoutExcelPath;
                if (File.Exists(strpath))
                {
                    workbook = new Workbook(strpath);
                }
                else
                {
                    workbook = new Workbook();
                }
                   Worksheet sheet = workbook.Worksheets[0]; //工作表
                Cells cells = sheet.Cells;//单元格
string str="";//获取要导出的数据


try
{
RoutExportToExcel(workbook,cells,str);


MessageBox.Show("导出成功!"); }
catch
{ MessageBox.Show("导出失败!"); } } } }

 

public void RoutExportToExcel(Workbook workbook, Cells cells,string str)
        {
           分别得到行和列
            int routCount =0;//;
            int rowcount = 4 + routCount;
            int columnCount = 25;
            for (int i = 0; i < rowcount; i++)
            {
                Style style = SettingCellStyle(workbook, cells);
                if (i == 0)
                {
                    style.Font.Color = Color.Red;
                    style.Font.Size = 16;
                    cells.Merge(0, 0, 1, columnCount);//合并单元格
                    cells[i, 0].PutValue("综合管线决策授权体系事项");//填写内容
                    cells[0, 0].SetStyle(style);//给单元格关联样式
                    cells.SetRowHeight(0, 38);//设置行高
                    cells.SetColumnWidth(1, 20);//设置列宽
                }
                if (i > 0)
                {
                    string routeName = "";
                    string routeNote = "";
                    string routeCondition = "";
                    string guid = "";
                    if (i > 3)
                    {
                        cells.SetRowHeight(i, 42);//设置行高
                        JsonObject routJsonObj = routeJsonArray[i - 4] as JsonObject;
                        routeName = routJsonObj["routName"] == null ? "" : routJsonObj["routName"].ToString();
                        routeNote = routJsonObj["note"] == null ? "" : routJsonObj["note"].ToString();
                        routeCondition = routJsonObj["condition"] == null ? "" : routJsonObj["condition"].ToString();
                        guid = routJsonObj["guid"] == null ? "" : routJsonObj["guid"].ToString();
                    }
                    for (int j = 0; j < columnCount; j++)
                    {
                        cells[i, j].SetStyle(style);//给单元格关联样式
                        //填充行
                        if (i > 3)
                        {
                            if (j == 0)//序号
                            {
                                cells[i, j].PutValue(i - 3);//填写内容
                            }
                            else if (j == 4 || j == 5 || j == 24)//审批明细事项 细项 备注
                            {
                                FillExcelRoutProperty(i,j,style,cells,routeName,routeNote,routeCondition);
                            }
                            else if (j == 2 || j == 3 || j == 6 || j == 7 || j == 8 || j == 10 || j == 11 || j == 12 || j == 13)//类别、分类、层级或板块、地区、管线、前置条件责任部门及责任人、审核校对验收责任部门及责任人、具体审核校对验收要求、发起人
                            {
                                FillExcelRoutExtProperty(i, j, guid, style, cells,routExtPropertyJsonArray);
                            }
                            else if (j >= 14 && j <= 23)//路由角色变量(从审批人1到终审人)
                            {
                                FillExcelRoutRoleVal(i,j,guid,style,cells,routRoleValjsonArray);
                            }
                            else if (j == 9)//前置条件及工作要求
                            {
                                FillExcelRoutPreConditon(i,j,guid,style,cells,routPreConditonJsonArray);
                            }
                        }
                        else
                        {
                           SettingCellStyleAndLine(cells, i, j);//设置excel的标题行和列
                        }
                    }
                }
            }
        }

 

/// <summary>
        /// 设置单元格样式及线条
        /// </summary>
        /// <param name="cells"></param>
        /// <param name="i"></param>
        /// <param name="j"></param>
        public void SettingCellStyleAndLine(Cells cells, int i, int j)
        {
            if (i == 1)
            {
                if (j == 0)
                {
                    cells.Merge(1, j, 3, 1);//合并单元格
                    cells[i, j].PutValue("序号");//填写内容
                    cells.SetColumnWidth(j, 5);//设置列宽
                }
                if (j == 1)
                {
                    cells.Merge(1, j, 3, 1);//合并单元格
                    cells.SetColumnWidth(j, 5);//设置列宽
                }
           }
 }
/// <summary>
        /// 设置单元格的样式
        /// </summary>
        /// <param name="workbook"></param>
        /// <param name="cells"></param>
        /// <returns></returns>
        public Style SettingCellStyle(Workbook workbook, Cells cells)
        {
            Style style = workbook.Styles[workbook.Styles.Add()];//新增样式
            style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
            style.Font.Name = "宋体";//文字字体
            style.Font.Size = 10;//文字大小
            style.IsLocked = false;//单元格解锁
            style.Font.IsBold = false;//粗体
            style.ForegroundColor = Color.FromArgb(255, 255, 255);//设置背景色
            style.Pattern = BackgroundType.Solid; //设置背景样式
            style.IsTextWrapped = true;//单元格内容自动换行
            style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
            style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
            style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
            style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
            return style;
        }

ERROR:Xst:871 - 无效使用输入信号 < M > 作为目标

ERROR:Xst:871 - 无效使用输入信号 < M > 作为目标

如何解决ERROR:Xst:871 - 无效使用输入信号 < M > 作为目标

你能发现这个 Verilog 代码中的错误吗? 当我合成此代码时,出现此错误:

  1. ERROR:Xst:871 - "FA.v" line 46: Invalid use of input signal < M > as target.

代码

  1. module FA(A,B,Cin,Sum,carry);
  2. input Cin,A,B;
  3. output Sum,carry;
  4. wire w1,w2,w3;
  5. xor G1(w1,B);
  6. xor G2(Sum,w1,Cin);
  7. and G3(w2,Cin);
  8. and G4(w3,B);
  9. or G5(carry,w3);
  10. endmodule
  11. module binary(Sum,Cout,V,M);
  12. output [3:0]Sum;
  13. output Cout,V;
  14. input [3:0]A;
  15. input [3:0]B;
  16. input M;
  17. wire w1,w3,w4;
  18. wire [2:0]c;
  19. xor G1(w1,B[0],M);
  20. xor G2(w2,B[1],M);
  21. xor G3(w3,B[2],M);
  22. xor G4(w4,B[3],M);
  23. FA G5(Sum[0],c[0],A[0],M); // line 46
  24. FA G6(Sum[1],c[1],A[1],c[0]);
  25. FA G7(Sum[2],c[2],A[2],c[1]);
  26. FA G8(Sum[3],A[3],w4,c[2]);
  27. xor G9(V,Cout);
  28. endmodule

解决方法

该消息告诉您不应将 M 模块的 input binary 端口连接到 G5 实例的输出端口。您使用按顺序连接,这意味着 M 连接到 FA carry 输出端口。因此,M 受到多重驱动:由输入和 FA G5 实例驱动。

如果您确实希望 MFA 驱动,则不得将其声明为 input。可以改为将其声明为 wire

  1. module binary(Sum,Cout,V,A,B);
  2. output [3:0]Sum;
  3. output Cout,V;
  4. input [3:0]A;
  5. input [3:0]B;
  6. wire M;

今天关于我在 ADF 中工作,我需要将数据从 sql 源导出到 Excel 目标,有没有办法在 ADF 中使用 Excel(.xlsx) 作为目标?笔记本?的讲解已经结束,谢谢您的阅读,如果想了解更多关于.xlsx 空数据框的 pd.ExcelFile()必须打开并保存 .xlsx 才能让 pd.ExcelFile() 工作、ADF:ADF 重新部署后自托管集成运行时不可用、C# 导入 Excel、Excel 导入、导入.xls 、导入.xlsx、Excel2003 版本、Excel2007 版本、ERROR:Xst:871 - 无效使用输入信号 < M > 作为目标的相关知识,请在本站搜索。

本文标签: