在向SQL数据库导入Excel2007数据表时提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 ”
产生这个错误的原因有一下几种:
1.没有安装数据访问组件,需要安装相应版本的数据访问组件;
2.没有安装相应版本的Office客户端,需要安装相应版本的Office客户端;
3.Microsoft.Jet.OLEDB.4.0在64位系统上不支持,需要修改架构,从x64改为x86,无论是WinForm还是ASP.NET;或者修改连接字符串为Microsoft.ACE.OLEDB.12.0并且安装AccessDatabaseEngine x64数据访问组件;
4.没有在IIS应用程序池配置默认属性,需要在相应的IIS应用程序池启用32位应用程序;
【解决方案】:
安装MS的数据连接组件AccessDatabaseEngine(或安装office 2007客户端),并将当前承载通过oledb提供程序去访问Excel2007的Web application对应的应用程序池“启用兼容32位应用程序”,
在对应的 IIS 应用程序池中,“设置应用程序池默认属性”右击/“高级设置”/"启用32位应用程序",设置为 true。
下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe
此下载将安装一组组件,非 Microsoft Office 应用程序可以使用它们从 2007 Office system 文件中读取数据。例如从 Microsoft Office Access 2007(mdb 和 accdb)文件以及 Microsoft Office Excel 2007(xls、xlsx 和 xlsb)文件中读取数据。
这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。