在C#WinForm开发或在使用是ACE.OleDB.12.0 连接导入excel文件的工具,公司电脑HP自动升级office 2016后,有可能把之前的引擎卸载,导致错误。
不光在我们开发时会出错,有可能之前已开发的工具在升级office2016后,也会出现这个错误。
Ps. MapInfo create table也会出错,提示Jet引擎出错。
查到的解决方法有两种:
1. 在VS里编译生成时,选择X86平台,有可能是32位和64位平台的问题。
如果不能解决,请检查电脑上是否有C:\ProgramFiles (x86)\Common Files\microsoft shared\OFFICE12\ACEODBC.DLL,子目录OFFICE11/OFFICE14/OFFICE15/OFFICE16下是否有ACE相关的文件。
· 如果有,查看对应的ACE引擎版本,常见的一般是12.0/14.0,修改代码里的字符串(这个目前没有测试)
· 如果没有的话,可以使用方法2 。
2. 下载AccessDatabaseEngine2007版本的引擎,原有工具就可以不做任何修改正常读取excel文件。(已使用,无问题)
https://www.microsoft.com/zh-CN/download/details.aspx?id=23734
Risk:
有朋友讲第2种方式有可能会丢失部分数据。但就目前测试来看未出现问题。