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\"";

 

··

posted @ 2020-11-02 15:27  亟待!  阅读(1318)  评论(0编辑  收藏  举报
……