6

除非我手动打开文件并单击“保存”,否则我在使用 SSIS 处理 excel 文件时遇到问题。
我注意到文件是 .xls 还是 .xlsx 并不重要

该文件从 SSRS 项目下载到 excel
我可以使用文件系统任务来移动、重命名、删除等文件,但是当我尝试使用数据流任务访问文件中的内容时出现错误外部表不是预期的格式。
然后我必须打开文件,单击保存,文件处理正常。

不知道这是否意味着……
我注意到当我在记事本中打开原始文件时,顶行包括:

xl/workbook.xml

保存文件后,第一行更改为:

[内容类型].xml 

使用 Microsoft Visual Studio 2012。

错误:

错误:TransferMoneyReconcile 中的 0xC0202009,连接管理器“Excel 连接管理器”:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft Office Access 数据库引擎”Hresult:0x80004005 描述:“外部表不是预期的格式。”。

Excel连接字符串:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\192.168.234.567\ftp\Sample\Money\Archive_Transfer Money to Manager.xlsx;Extended Properties="EXCEL 12.0 XML;HDR=NO";

任何帮助/建议表示赞赏!
谢谢!
史蒂文

4

2 回答 2

0

这可能会给它更多的启示。问题仍然存在:

  • 为什么 SSRS 不能以标准 Excel 工作簿格式输出?
  • 为什么 SSIS 不能加载 Strict Open XML 电子表格格式?

前

后

于 2021-07-02T10:27:54.777 回答
0

XLSX 扩展有 2 种类型。

  1. Excel 工作簿(我们称这种类型为 1)

  2. 严格的 Open XML 电子表格(我们称这种类型为 2)

以上两者都有 .xlsx 扩展名。

要自己查看,您可以打开 excel 应用程序,创建一个新文件,单击保存并注意类型 1(位于列表顶部)和类型 2(位于列表底部)。

默认选项是类型 1 - Excel 工作簿。因此,当您创建一个新文件并保存时,它将保存为类型 1。

但是,根据我的测试,当您打开类型 2 文件并保存时,它可能会保存为类型 1 或类型 2。不能保证这种行为。

无论如何,要解决您面临的错误,请打开文件并保存(通过另存为)并选择类型 1 格式。然后测试 SSIS,它应该运行没有错误。

于 2021-04-23T15:21:21.793 回答