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