错误:The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer

错误描述:The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer
最近在Web项目中做一个自动生成Excel→下载→修改→上传→生成json格式文件的功能。
本地一切都顺利,在部署到IIS服务器后,运行发现挂了。

代码忽略(一加代码块,整个博客就废了,估计不能复制粘贴,得手敲)

在我各种查阅,对比,实践后把解决方法记录下来,和大家分享:
报错原因是本地安装了Office客户端,但是服务器没有安装Office客户端。
我们都知道,安装一个Office客户端是需要占一些内存的,这不利于服务器的性能。
所以我就查询了资料,结合实践,有了不安装Office客户端也能读取Excel的解决办法。

解决办法:
**第一步:**安装数据访问组件:(AccessDatabaseEngine)
  1)适用于office2007的Access组件
  Microsoft Access Database Engine 2007 Office system 驱动程序:数据连接组件
  https://www.microsoft.com/en-us/search?q=Microsoft+Access+Database+Engine+2010+Redistributable
  2)适用于office2010的Access组件
  Microsoft Access Database Engine 2010 Redistributable
  https://www.microsoft.com/zh-CN/download/details.aspx?id=13255
  
下载安装后电脑里便会有一组组件,非 Microsoft Office 应用程序可以使用它们从 2007/2010 Office system 文件中读取数据,
例如:
1)从 Microsoft Office Access 2007/2010(mdb 和 accdb)文件中读取数据;
2)从Microsoft Office Excel 2007/2010(xls、xlsx 和 xlsb)文件中读取数据。
这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。
   此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。

**第二步:**打开你所部署项目的电脑的IIS管理器,把你用的那个程序池修改“启用兼容32位应用程序” 属性值为True。
如下图所示:

在这里插入图片描述
以上方法,亲测有效,如果你遇到类似的问题依旧无法解决,可以查看一下Excel。有的读取Excel的方法分xlxs和xls两种文件。

如有更多问题可查看: https://www.cnblogs.com/yifeixue/ 或者:http://www.cnblogs.com/willingtolove/