由於微軟在2017-10-10左右更新了安全補丁(KB4041678,KB4041681)
從而更新了Microsoft JET Database Engine導致asp、asp.net等無法讀取Excel。
出錯提示1:Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC Excel 驅動程序] 保留錯誤 (-5016); 沒有這種錯誤的消息。
出錯提示2:導入或者查詢excel 提示:外部數據庫驅動程序中(1)的意外錯誤
壹直正常,沒有修改過配置,只是更新了補丁就查詢不了了,所以基本上是補丁問題。
百度到的方法大都是卸載補丁
解決方案:在控制面板>程序>程序和功能>已安裝更新中,找到對應的兩個補丁,進行卸載。
本人也收到多位asp+excel通用查詢系統忠實用戶的反饋。
其中壹位用戶提供了解決方法,本人親測可用,故予以分享。
實現原理:使用舊版msexcl40.dll即可解決。
第壹步:下載舊版 msexcl40.dll
打補丁後異常的新版:337KB版本4.0.9801.1
我們得下載最新舊版:332KB版本4.0.9801.0
或更早版本:比如:4.0.9502.0
第二步:更名後復制到相同位置
文件名更改msexcl40.dll為msexcl40_aiyaha.dll
復制到C:\Windows\SysWOW64\下
新復制的舊版位置:C:\Windows\SysWOW64\msexcl40_aiyaha.dll
第三步:修改註冊表對應的位置參數
運行-->regedit 進入註冊表並搜索msexcl40.dll
得到註冊表位置:(如圖)
雙擊修改名稱win32值為:C:\Windows\SysWOW64\msexcl40_aiyaha.dll
第四步:Win2008 64位環境下親測,無需重啟已經正常