【问题标题】:Import data to SQL Server table from Excel从 Excel 将数据导入 SQL Server 表
【发布时间】:2015-04-23 20:48:48
【问题描述】:

我正在尝试将数据从 excel 文件导入 SQL Server 表。我收到此错误“外部表不是预期格式(Microsoft Office Access 数据库引擎)” 我正在使用 Microsoft SQL Server 2012 和 Excel 2007。我尝试了 Microsoft SQL Server 导入和导出向导。然后我选择 Microsoft Excel 作为数据源,选择文件名并选择 excel 的版本。然后我收到了上面的错误信息。

【问题讨论】:

  • 你是怎么导入的?通过向导?您是否选择了“Excel 源”?我们需要更多信息。
  • Access 是如何介入其中的?我以为你是从 Excel 将数据导入 sql 的?
  • stackoverflow.com/questions/375991/…。如果您使用向导,信息不足,请确保您拥有数据类型、长度和正确的 Jet 引擎。

标签: sql-server import-from-excel


【解决方案1】:

发现它与excel文件有关。在打开 excel 文件之前,我收到此错误消息“您尝试打开的 .xls 文件的格式与文件扩展名指定的格式不同。请在打开文件之前验证该文件没有损坏并且来自受信任的来源。” 打开它并复制其内容并从中创建一个新的 excel 文件。然后我用这个文件在向导中导入。我将 Microsoft Excel 指定为源文件名,并将 Microsoft excel 2007 指定为版本。 对于目的地,我选择了 SQL Server Native 客户端 11.0、服务器名称和数据库。我选择了编辑映射来映射 Excel 工作表和目标表之间的字段。运行向导后,它将数据传输到 sql server 中的目标表。

【讨论】:

  • 三年后,这为我节省了数小时(更多)的挫败感 :-)
【解决方案2】:

使用不同的名称将其保存为最新的 xlsx 版本。没关系,如果你认为你什么都没改变,它确实做到了。然后尝试导入新文件。

【讨论】:

  • 当您将 html 保存为 excel 时,会发生此问题,通过另存为操作,文件将保存为 excel 真实格式。谢谢为我工作
【解决方案3】:

检查以确保 Excel 工作簿上没有密码(如果确实删除了密码)。我遇到了同样的错误,这解决了它。

【讨论】:

    【解决方案4】:

    您应该将您的 Excel 文件保存到较低版本,可以是 2003 版本的 excel。保存文件后,您现在可以进行 SQL 的数据传输。

    基因

    【讨论】:

      【解决方案5】:

      这个问题的另一个答案可能是(对我来说)它只在我有相同的 Excel 文件时才有效,我正在导入数据库,打开。 原因是我公司的加密策略,使用了一个名为 NASCA 的软件。 当我关闭文件时,它会被加密并且无法读取,例如SQL Server 管理工作室。

      因此,请尝试在导入期间保持文件打开,它可能会起作用。

      【讨论】:

      • 在我的例子中:将扩展名从 .xlsx 重命名为。 xls,然后继续打开文件就像魔术一样工作。
      【解决方案6】:

      我遇到了这个问题,有一个 xsls 文件 (Excel 2007)。向导正确识别了版本,但由于“不是预期格式”错误而失败。

      我不确定错误的根源是什么 - 我怀疑电子表格中的链接或引用无效。

      我复制了我感兴趣的工作表的内容,并粘贴到一个新的空白工作表中。我保存了它,然后在导入向导中打开它,导入没有问题。

      【讨论】:

        【解决方案7】:

        我发现问题在于 Excel 工作表是 .xls 格式,而我使用的是 Excel 2010 和 SQL Server 2014,因此解决方案是简单地将电子表格转换为 .xlsx,然后通过选择 Excel 再次运行向导作为数据源,自动选择 Exel 2007 作为数据源的 Excel 版本,解决了向导运行流畅的问题。

        因此无需将工作表的内容复制到新的电子表格中。

        希望对任何人都有帮助!

        【讨论】:

          【解决方案8】:

          就我而言,一次从 3 张工作表导入数据时出现此错误。然后我只选择一张纸,它起作用了。我接下来选择另外两张纸,它们也可以工作,所以有时您可能只想单独导入图纸或再给它一次机会。它可能对某人有所帮助。

          【讨论】:

            【解决方案9】:

            我的问题是我的 excel 表没有定义命名范围。一旦我在我的 excel 文件中创建了一个命名范围,我就可以将它导入。

            【讨论】:

              【解决方案10】:

              我今天遇到了这个问题,我确定这是由于第一张表开头的图形造成的。由于我只关心第三张,所以我删除了前两张,然后错误就消失了。

              【讨论】:

                猜你喜欢
                • 2015-01-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多