【问题标题】:SSIS - "External table is not in the expected format" and .xls filesSSIS - “外部表不是预期的格式”和 .xls 文件
【发布时间】:2014-07-30 02:35:16
【问题描述】:

在 SSIS ETL 转换中,我尝试加载某个 .xls 文件。我有几个具有相似架构的相同文件,并且它们都可以正常工作。但是,这个文件会引发“外部表不是预期格式”错误。这是我尝试过的:

  • 我已经将连接字符串从 Jet OLEDB 更改为 ACE OLEDB,没有结果。
  • 我将连接类型从 Excel 97-2003 更改为 2007,没有结果。
  • 连接管理器正在使用一个变量,所以我尝试创建另一个直接加载文件的连接管理器。没有结果。
  • 我正在使用 SQL 查询从文件中读取数据,因此我尝试读取文件中的工作表。它们不加载。
  • 我尝试了“另存为...”并使用 Excel 97-2003。
  • 我尝试重新保存文件。
  • 我尝试恢复原始文件。
  • 我检查了文件中的表格,并将它们与加载的类似表格进行了比较。至少两者都有相同的床单。

但更奇怪的是,如果我在 Excel 中打开文件而在 SSIS 中加载文件时,它会正确加载。作为附加信息:

  • 文件有宏,但其他文件也有。
  • 我的计算机运行 32 位架构。
  • 我使用的是 Visual Studio 2010 + SQL Server 2012。

还有什么可能触发此错误?

编辑:现在我尝试设置一个 ADO.NET 源和一个 OLEDB 源来打开 .xls 文件。 ADO.NET 无法“从列中检索信息”,并且 OLEDB 将其连接关闭。也许有办法知道何时读取excel文件失败?

我还尝试了一些非常棘手的方法:我检查了事件监视器,发现有一些错误,所以我快速谷歌搜索并修复了它。它已链接到 SSIS,但修复它并没有解决错误。

【问题讨论】:

    标签: excel ssis oledb etl


    【解决方案1】:

    最后,我做了一些更简单的事情:我将文件转换为 .xlsx,并使我的连接管理器成为 Excel 2007 的。虽然如果它比我的更好,我会标记另一个答案,但我会将这个留给其他有类似问题的人。

    【讨论】:

      【解决方案2】:

      我在一个 SSIS 包中遇到了同样的问题,来解决这个问题。

      使用下面的步骤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-18
        • 1970-01-01
        • 2015-04-02
        • 2010-11-11
        • 2016-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多