SSIS - “外部表格格式不符合预期”和.xls文件

9
在SSIS ETL转换中,我试图加载某个 .xls 文件。我有几个相同的文件,拥有类似的模式,所有这些文件都可以正常工作。但是这一个文件却出现了"外部表格不符合预期格式"的错误信息。以下是我尝试过的方法:
  • 我已经将连接字符串从 Jet OLEDB 改为 ACE OLEDB,但没有结果。
  • 我将连接类型从 Excel 97-2003 改为 2007,没有结果。
  • 连接管理器正在使用变量,因此我尝试创建另一个直接加载文件的连接管理器。依然没有结果。
  • 我正在使用 SQL 查询来读取文件,所以我尝试读取文件中的工作表,但它们无法加载。
  • 我尝试使用 "另存为" 功能,并使用 Excel 97-2003。
  • 我尝试重新保存文件。
  • 我尝试恢复原始文件。
  • 我检查了文件中的工作表,并将它们与一个可以加载的类似文件进行了比较。至少两个文件具有相同的工作表。

但更奇怪的是,如果我在 SSIS 中加载文件时仍然将其保持在 Excel 中打开,则文件会正确加载。以下是一些额外的信息:

  • 该文件具有宏,但其他所有文件也都是如此。
  • 我的计算机运行 32 位结构。
  • 我使用的是 Visual Studio 2010 + SQL Server 2012。

还有什么原因会导致这个错误触发?

编辑:现在我尝试为打开 .xls 文件设置了一个 ADO.NET 源和一个 OLEDB 源。ADO.NET 无法"检索列信息",而 OLEDB 连接会被关闭。也许有一种方法可以知道何时读取 Excel 文件失败?

我还尝试了一些非常棘手的方法:我检查了事件查看器,并注意到出现了一些错误,所以我进行了快速的 Google 搜索并解决了问题。它与 SSIS 有关,但修复它并没有解决错误。

2个回答

5
最后我做了一件更简单的事情:把文件转换成.xlsx格式,并将连接管理器设置为Excel 2007。虽然如果有更好的答案,我会标记其他答案,但这个解决方案适用于其他遇到类似问题的人。

3
我在一个SSIS包中遇到了同样的问题,解决这个问题的方法如下:
使用以下步骤。 enter image description here enter image description here

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