除非手动保存,否则无法使用SSIS打开excel文件

时间:2014-12-11 16:19:20

标签: excel reporting-services ssis dataflowtask

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

,它就不会生成

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

不确定这是否意味着什么.... 我注意到当我在记事本中打开原始文件时,顶行包括:

  

XL / workbook.xml

保存文件后,顶行变为:

  

[Content_Types] .xml

使用Microsoft Visual Studio 2012.

ERROR:

  

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

ExcelConnectionString:

  

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”;

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

3 个答案:

答案 0 :(得分:0)

Excel连接管理器的ConnectionString属性是否如下所示?

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=U:\Company Sales 2008.xls;Extended Properties="Excel 8.0;HDR=YES";

将其更改为此可以解决您的问题:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\Company Sales 2008.xls;Extended Properties="Excel 12.0 XML;HDR=NO";

答案 1 :(得分:0)

XLSX 扩展有 2 种类型。

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

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

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

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

默认选项是类型 1 - Excel 工作簿。所以当你创建一个新文件并保存时,它会被保存为类型 1。

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

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

答案 2 :(得分:0)

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

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

Before

After