从Excel导入数据到SQL Server表

问题描述 投票:0回答:11

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

sql-server import-from-excel
11个回答
6
投票

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


5
投票

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


2
投票

这个问题的另一个答案可能是(就像对我来说一样),它仅在我有相同的 Excel 文件时才有效,我正在将其导入数据库并打开。 原因是我公司的加密政策,使用了名为 NASCA 的软件。 当我关闭文件时,它会被加密并且无法被例如SQL Server Management Studio。

因此,尝试在导入过程中保持文件打开,它可能会起作用。


1
投票

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


1
投票

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

基因


0
投票

我遇到了这个问题,使用的是 xsls 文件(Excel 2007)。向导正确识别了版本,但失败并出现“不符合预期格式”错误。

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

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


0
投票

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

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

希望对大家有帮助!


0
投票

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


0
投票

我的问题是我的 Excel 表格没有定义命名范围。在 Excel 文件中创建命名范围后,我就可以导入它。


0
投票

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


0
投票

我通过关闭一个驱动器修复了它......

© www.soinside.com 2019 - 2024. All rights reserved.