我正在尝试将数据从 Excel 文件导入到 SQL Server 表。我收到此错误“外部表不是预期的格式(Microsoft Office Access 数据库引擎)” 我正在使用 Microsoft SQL Server 2012 和 Excel 2007。我尝试了 Microsoft SQL Server 导入和导出向导。然后我选择Microsoft Excel作为数据源,选择文件名并选择excel版本。然后我收到上面的错误消息。
用不同的名称保存为最新的 xlsx 版本。如果你认为你什么也没改变,没关系,事实上它确实改变了。然后尝试导入新文件。
发现是和excel文件有关。在打开 Excel 文件之前,我收到此错误消息“您尝试打开 .xls 的文件的格式与文件扩展名指定的格式不同。在打开文件之前,请验证该文件未损坏且来自受信任的来源。” 打开它并复制其内容并从中创建一个新的 Excel 文件。然后我使用这个文件在向导中导入。我指定 Microsoft Excel 作为源和文件名,并指定 Microsoft Excel 2007 作为版本。 对于目标,我选择了 SQL Server Native client 11.0、服务器名称和数据库。我选择编辑映射来映射 Excel 工作表和目标表之间的字段。运行向导后,它将数据传输到 sql server 中的目标表。
这个问题的另一个答案可能是(就像对我来说一样),它仅在我有相同的 Excel 文件时才有效,我正在将其导入数据库并打开。 原因是我公司的加密政策,使用了名为 NASCA 的软件。 当我关闭文件时,它会被加密并且无法被例如SQL Server Management Studio。
因此,尝试在导入过程中保持文件打开,它可能会起作用。
检查并确保 Excel 工作簿上没有密码(如果确实删除了密码)。我遇到了同样的错误,这解决了它。
您应该将Excel文件保存到较低版本,可以是2003版本的Excel。保存文件后,您现在可以进行 SQL 数据传输。
基因
我遇到了这个问题,使用的是 xsls 文件(Excel 2007)。向导正确识别了版本,但失败并出现“不符合预期格式”错误。
我不确定错误的根源是什么 - 我怀疑电子表格中存在无效的链接或引用。
我复制了我感兴趣的工作表的内容,并将其粘贴到新的空白工作表中。我保存了它,然后在导入向导中打开它,并且导入没有任何问题。
我发现问题在于 Excel 工作表采用 .xls 格式,而我使用的是 Excel 2010 和 SQL Server 2014,因此解决方案是将电子表格简单地转换为 .xlsx,然后选择 Excel 作为数据源自动选择 Exel 2007 作为数据源的 Excel 版本,并解决了向导顺利运行的问题。
因此无需将工作表的内容复制到新的电子表格中。
希望对大家有帮助!
就我而言,我在一次从 3 张表导入数据时收到此错误。然后我只选择一张纸,它就起作用了。接下来我选择其他两张工作表,它们也有效,所以有时您可能只想单独导入工作表或再给它一次机会。它可能对某人有帮助。
我的问题是我的 Excel 表格没有定义命名范围。在 Excel 文件中创建命名范围后,我就可以导入它。
我今天遇到了这个问题,我确定这是由于第一张纸开头的图形造成的。由于我只关心第三张纸,因此我删除了前两张纸,然后错误就消失了。
我通过关闭一个驱动器修复了它......