Microsoft.Jet.OLEDB.4.0 和 Microsoft.ACE.OLEDB.12.0 的區別


今天用戶發來一張圖,用戶再向ERP系統中上傳Excel文件時提示的,這是因為之前用戶的ERP系統換了一台服務器,服務器環境中沒有安裝Office 軟件導致的,所以就沒有對應的環境。

 

 提示內容未在本地計算機上注冊“Microsoft.Jet.OLEDB.4.0”提供程序(導入Excel文件報錯);

 

問題分析:

出現上述的提示,是因為在通過ADO對Excel對象進行連接時(此時Excel則認為是一個數據源),需要配置對Excel數據源對應的連接串,這個連接串中包括了Provider信息(其實類似對數據庫進行連接操作時,都需要指定連接字符串),以下是一行連接串源代碼:
strConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strExcelFilePath & ";Extended Properties=Excel 12.0"
這里的Provider使用了Microsoft.ACE.OLEDB.12.0,其實除了Microsoft.ACE.OLEDB.12.0,還有Microsoft.Jet.OLEDB.4.0,它們倆者之間有什么聯系和區別呢:

 

共同點:

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0 一樣,都是連接到Excel對象的接口引擎;

 

不同點:

對於不同的Excel版本,有兩種接口可供選擇:Microsoft.Jet.OLEDB.4.0(以下簡稱 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下簡稱 ACE 引擎)。
Jet 引擎,可以訪問 Office 97-2003,但不能訪問 Office 2007。
ACE 引擎是隨 Office 2007 一起發布的數據庫連接組件,既可以訪問 Office 2007,也可以訪問 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以訪問正在打開的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

 

解決方案:

解決方法:采用ACE的方式,

具體如下:

1. 修改連接字符串 原始:OleDbConnectionconn = new OleDbConnection("Provider = Microsoft.Jet."+ "OLEDB.4.0; Data Source =" + path + ";" + "Extended Properties=Excel 8.0");

改為:OleDbConnectionconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";" + "Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;\"");

(只做第1步更改,運行程序還會報錯:未在本地計算機上注冊“Microsoft.ACE.OLEDB.12.0”提供程序)

2. 安裝Microsoft Access 數據庫引擎

(1)2007 Office system 驅動程序

http://www.microsoft.com/zh-CN/download/details.aspx?id=23734

支持的操作系統:Windows Server 2003 Service Pack 1, Windows Vista, Windows XP Service Pack 2

此下載適用於以下 Office 程序:2007 Microsoft Office system

(2)Microsoft Access 2010 數據庫引擎

http://www.microsoft.com/zh-CN/download/details.aspx?id=13255

支持的操作系統:Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, Windows XP Service Pack 2

只有 32 位 Access 數據庫引擎可在 Windows XP Service Pack 3 上使用

注:本人使用的操作環境:64位 win7+office2007(c# winForm開發),選擇的 2(2)中的數據庫引擎,在安裝過程中遇到以下問題。

我采用的解決方法是:將提示中列出的幾項Microsoft Office Enterprise 2007等刪除,刪除后再安裝數據庫引擎,安裝成功(導入Excel問題解決)。

 

之后依然安裝之前的office2007,安裝過程中出現問題忽略,繼續安裝,安裝完畢后,office能正常使用。

還有一種方案是采用 x86方式運行

1. 目標平台改為:x86

 

2. IIS設置啟用32位應用程序

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM