Windows或SqlServerSSMS:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序(AccessDatabaseEngine)

Windows或SqlServerSSMS:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序(AccessDatabaseEngine)

环境:Win7、Win10 32位、Win10 64位系统

说明: C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 

解决办法:

1、下载对应组件安装:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

     请下载非64位的AccessDatabaseEngine.exe  。

注意:要选择AccessDatabaseEngine.exe,而不是AccessDatabaseEngine_X64.exe,否则还会提示相同的错误!!!
(Tips:无论是32位还是64位操作系统和Office位数,都不能使用_X64的AccessDatabaseEngine。使用AccessDatabaseEngine.exe兼容性最好)

扩展阅读:

1). VS问题:C#来访问ACCESS或者Excel时,会用到数据库访问的组件,有时候会出现如下图所示的错误,即Microsoft.Jet.OLEDB.4.0,microsoft.ACE.oledb.12.0 provideer is not registered on the local machine.

  解决方法:

 2).  IIS Excel读取

C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

  解决方法:

 控制面板-管理工具中打开IIS(如果没有,在控制面板-程序与功能-启用或关闭windows功能-选择IIS功能),IIS中的设置如下:(设置完成后重新启动IIS)

 

修改连接字符串

支持xls:strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";

支持xls和xlsx:strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties="Excel 8.0;HDR=YES"";

··

原文地址:https://www.cnblogs.com/05-hust/p/13914685.html