我在使用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”;
任何帮助/建议表示赞赏!
谢谢!
史蒂芬
答案 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 种类型。
Excel 工作簿(我们称之为类型 1)
严格的 Open XML 电子表格(我们称之为类型 2)
以上两者都有 .xlsx 扩展名。
要自己查看,您可以打开 Excel 应用程序,创建一个新文件,单击保存并注意类型 1(位于列表顶部)和类型 2(位于列表底部)。< /p>
默认选项是类型 1 - Excel 工作簿。所以当你创建一个新文件并保存时,它会被保存为类型 1。
但是,根据我的测试,当您打开类型 2 文件并保存时,它可能会保存为类型 1 或类型 2。此行为无法保证。
无论如何,要解决您面临的错误,请打开文件并保存(通过另存为)并选择类型 1 格式。然后测试 SSIS,它应该可以正常运行。
答案 2 :(得分:0)