获取“外部表不是预期的格式”。尝试在SSIS中导入Excel文件时出错

时间:2019-07-25 20:36:43

标签: sql-server excel ssis oledb etl

我正在尝试通过SSIS将Excel文件(.xls)导入SQL Server中的表。但是SSIS似乎无法将文件识别为有效的Excel文件。我收到以下错误:

错误1:

  

[Excel来源[86]]错误:SSIS
  错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。
  对连接管理器“ Carga Base Original”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布错误消息,并详细说明为什么AcquireConnection方法调用失败的原因。

错误2:

  

[SSIS.Pipeline]
  错误:Excel Source验证失败,返回错误代码0xC020801C。

错误3:

  

[连接管理器“ Carga Base Original”]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。   OLE DB记录可用。
  来源:“ Microsoft Access数据库引擎”
  结果:0x80004005
  说明:“外部表的格式不正确”。

我的连接管理器属性是一个Excel Source,其属性如下所示:

Connection Manager Properties

我正在通过变量传递Excel文件路径。 Excel文件看起来不错,并且没有损坏。我尝试放置一个固定的Excel路径,尝试将其放置在Connection String属性(固定路径和变量)中,但是这些都无济于事。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

我按照哈迪的话做了,然后用一个新名称再次保存了文件,

答案 1 :(得分:0)

主要错误是:

  

外部表的格式不正确

当Excel文件已损坏并且无法通过Access Database Engine(OLE DB提供程序)打开Excel文件时,即使您可以从Excel打开文件,也会发生这种情况。在类似的情况下,手动打开文件并将其另存为新文件可以解决问题。

答案 2 :(得分:0)

就我而言,将邮件合并的参考 Excel 文件另存为 .xls (Excel 97 - 2003) 有效。 .xlsx 引发了“外部表不是预期格式”错误消息,但 .xls 没有。