在尝试在SSIS中导入Excel文件时,出现“外部表格格式不符合预期”错误。

3

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

错误1:

[Excel Source [86]] 错误: SSIS
错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。
对连接管理器“Carga Base Original”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布更多有关AcquireConnection方法调用失败原因的错误消息。

错误2:

[SSIS.Pipeline]
错误: Excel数据源验证失败并返回错误代码0xC020801C。

错误3:

[Connection manager "Carga Base Original"] 错误: SSIS Error Code DTS_E_OLEDBERROR。发生OLE DB错误。错误代码: 0x80004005。 一个OLE DB记录可用。
来源:“Microsoft Access Database Engine”
Hresult: 0x80004005
描述:“外部表不符合预期格式”。

我的连接管理器属性是一个 Excel 源,它的属性看起来像这样:

Connection Manager Properties

我将Excel文件路径通过变量传递。 Excel文件看起来不错,没有损坏。 我尝试固定Excel路径,并将其放在连接字符串属性中(固定路径和变量),但这些都没有帮助。
有人能帮我吗?
2个回答

5

主要错误是:

外部表格格式不符预期

当Excel文件损坏且Access数据库引擎(OLE DB提供程序)无法打开该文件时,会发生此错误,即使您可以从Excel中打开该文件。类似的情况下,手动打开文件并将其另存为新文件可能会解决问题。


我按照你说的做了,并且用一个新的名字重新保存了文件,结果成功了。 - undefined
1
并不总是解决方案,但肯定值得首先检查。当OLEDB无法理解源时,此错误是一个通用的捕获所有错误。它假设它是一个数据库 - 因此是“表”,之后它会耸耸肩说“不知道”。这可能非常具有误导性。 - undefined
1
@Ciarán 你是对的。我将“will do”改为“可能会做”。 - undefined

0
在我的情况下,将邮件合并的参考Excel文件保存为.xls(Excel 97 - 2003)是有效的。.xlsx会引发“外部表格格式不符合预期”错误消息,但是.xls则不会。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接