“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册,在将xlsx导入到SQL服务器的过程中出现错误。

135

我使用的操作系统是64位的Windows 7和SQLServer 2008 R2(64位)。

我按照这里的指示将Excel文件导入到SQL Server中,但在该文章的第3部分(figure3),当我尝试访问Excel文件并单击下一步时,出现了以下错误:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

我在网上搜索得知我必须安装AccessDatabaseEngine_x64。但是当我安装它后,仍然遇到同样的问题。

请问你能帮我解决这个问题吗?

8个回答

234

安装以下内容以解决您的错误。

2007办公系统驱动程序:数据连接组件

AccessDatabaseEngine.exe(25.3 MB)

此下载将安装一组组件,以促进现有Microsoft Office文件之间的数据传输,例如Microsoft Office Access 2007(* .mdb和.accdb )文件和Microsoft Office Excel 2007( .xls,* .xlsx 和* .xlsb)文件到其他数据源,例如Microsoft SQL Server


这个问题在我打开SSIS 64位执行后出现。另外请注意,安装完成后立即解决了该问题,不需要重新启动。 - Iman
11
当我有一个XLSX格式的文件时,将其降级为XLS格式,就可以在不安装任何额外程序的情况下使用。 - Mark Boltuc
8
这里的“2007”非常令人误解。我正在运行SSMS 2014,Office 64位版,Windows 8.1 64位版,并认为这太过时了,但是这个“2007”办公组件起到了作用。谢谢! - russds
1
修复了我在 Windows 7 上的 64 位 Office。 - TheTechGuy
2
链接现在显示404错误。请尝试访问此链接:https://www.microsoft.com/en-us/download/details.aspx?id=54920 - Vivek Ayer
显示剩余3条评论

79

Excel 2010驱动程序是64位的,而默认的SSMS导入导出向导是32位的,因此会出现错误信息。

您可以使用导入导出数据(64位)工具进行导入。 ("C:\ Program Files \ Microsoft SQL Server \ 110 \ DTS \ Binn \ DTSWizard.exe") 注意路径不是Program Files x86。


3
+1. 我本来打算安装其他答案中建议的额外组件。但是既然我的机器上已经有了一切,为什么还要安装呢? - Pradeep
6
我很喜欢这个答案,但我想知道是否有办法在SSMS中更改默认设置。 - Dave.Gugg
2
我必须通过点击“开始”并搜索“导入和导出”,然后选择64位工具来打开64位导入程序。 - blizz
5
这解决了我的问题。要将默认设置更改为有效的设置,只需用有效的设置 C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe 替换 x86 文件夹中的那个文件 C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe。如果您想要更保险,可以先将旧文件重命名,而不是直接替换他,这样如果出现问题,您就可以回退到原来的文件。 - Magnetron
3
我找到了导入向导的64位版本,但不幸的是,与我机器上的32位版本不同,"Excel"在下拉列表中没有被列为可能的数据源。 - Bob Sammers
显示剩余6条评论

32

将其保存为CSV文件,作为扁平源文件导入。


不需要安装任何额外的东西。这个帖子应该有更多点赞。 - Austin
不适用于我,因为在扫描时它会说找不到报头分隔符,尽管扫描了很多字节。我的 Excel 文件还有多个工作表。 - Bob the Builder

19

2
事实上,这个32位的安装程序也为我解决了问题,尽管我使用的是64位的操作系统和SQL,但Office是32位的。 - PedroC88
链接已损坏,请分享新的链接。 - Venkat

1

我也遇到了同样的问题。SSMS启动了32位版本的导入和导出向导,这个版本有此问题。尝试启动64位版本应用程序,它应该可以正常工作。


1
目前,微软没有提供“2007 Office系统驱动程序:数据连接组件”的下载选项,点击第一个答案中的“2007 Office系统驱动程序:数据连接组件”会重定向到Cnet,从而导致下载链接产生混淆。
这就是为什么使用SQL Server 2014和Windows 10的最新版本的人们需要点击下面的链接来下载此组件,以解决您的问题: Microsoft Access Database Engine 2010 祝您编程愉快!

0
如果你有xlsx文件,请将其保存在workbook2003-2007.xls文件中并尝试。希望它能够工作。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接