“Microsoft Access数据库引擎”Hresult:0X80004005描述:“外部表格不在预期的格式”。

我有一个问题,而我试图从一个.xlsx文件使用SSIS 2014加载数据到表中,以前我能够加载数据,因为我收到的文件在.xls版本,但现在最近我收到文件在.xlsx文件(我以某种方式知道他们正在生成OFFICE 16的文件)。 我testing过的所有场景:

1.手动打开文件,并保存/保存为它并加载表 – 它正在工作,但不build议在日常的基础上,因为我需要自动化。

2.在DFT中,我使用的这个连接string是Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\a.xlsx;Extended Properties=Excel 12.0;HDR=Yes;IMEX=1; – 它不工作

3.尝试使用C#代码(脚本任务)打开Excel文件,我已经尝试了上面的连接,还有一些其他的版本,如改变上面提到的连接string中的扩展版本:

  • Extended Properties=Excel 12.0;
  • Extended Properties=Excel 12.0 xml;
  • Extended Properties=HTML import;

    然后我有一个错误说

找不到可安装的ISAM。

不明白这是什么错误!

4.我在记事本中打开了.xlsx文件,当我打开文件并按下保存button时,我发现"xl/workbook.xml"已经更改为"[Content_Types].xml" 。 那么文件就能够访问。 – 没有得到任何清晰的这种情况。

PS:我在Windows Server 2012中使用SQL Server 2014和SSIS 2014。

假设您已完成所有准备工作,包括安装Microsoft Access 2010 Runtime

尝试使用来自DFT的以下连接string( 将双引号添加为Xml关键字 ):

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Users\a.xlsx";Extended Properties="Excel 12.0 Xml;HDR=Yes;IMEX=1";