關於32位程序在Win7&64位系統中連接Microsoft Excel數據源的問題


最近在新公司電腦上跑以前的selenium測試框架的時候,拋出了如下的錯誤

出現的是ODBC Driver問題:[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我查看了我的系統屬性 -- 64 bit System, Microsoft Excel -- 32 bit

而這個selenium框架之前都是運行在win7 32位系統上的,且框架腳本編譯之后也是32位的,所以初步判斷這與系統64位相關。

 

解決方案:

1. 下載32位的AccessDatabaseEngine.exe文件並安裝(默認安裝即可),由於我電腦上的Office是2010版本,所以需要下載2010版本的Access Data Engine。下載地址如下:

http://www.microsoft.com/en-us/download/details.aspx?id=13255

由於我的32位selenium框架移到了64位系統上運行,而32位編譯的項目在64位系統上運行需要有32位的驅動,並且系統上安裝的office也是32位的,故需要使用32位的AccessDatabaseEngine.exe驅動文件。

Description:

AccessDatabaseEngine.exe這個組件的作用是允許非 Microsoft Office 應用程序可以使用它們從 2010 Microsoft Office system 文件中讀取數據。例如從 Microsoft Office Access 2010(mdb 和 accdb)文件以及 Microsoft Office Excel 2010(xls、xlsx 和 xlsb)文件中讀取數據。這些組件還支持與 Microsoft Windows SharePoint Services 和文本文件建立連接。

此外,還會安裝 ODBC 和 OLEDB 驅動程序,供應用程序開發人員在開發與 Office 文件格式連接的應用程序時使用。

1)如果你是使用 OLEDB 的應用程序開發人員,請將 ConnectionString 屬性的 Provider 參數設置為“Microsoft.ACE.OLEDB.12.0”, 如果要連接到 Microsoft Office Excel 數據,請將“Excel 12.0”添加到 OLEDB 連接字符串的擴展屬性中。

2)如果你是使用 ODBC 連接到 Microsoft Office Access 數據的應用程序開發人員,請將連接字符串設置為“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
     如果你是使用 ODBC 連接到 Microsoft Office Excel 數據的應用程序開發人員,請將連接字符串設置為“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file

2. 對ODBC數據源進行配置

如果你打開ODBC管理器,由於系統是64位的,所以打開的也是64位版本的ODBC管理器。由於我的selenium框架是32位程序,它不能從64位的ODBC管理器中創建的DSN(Data Source Name)中找到相應的數據源,故會發生上面的錯誤。

而32位的ODBC Manager是在如下路徑的:C:\Windows\SysWOW64\odbcad32.exe

雙擊odbcad32.exe文件,將出現如下窗口:

點擊System DSN tab

點擊Add button添加數據源,選擇 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)

最終添加System DNS如下:

最后點擊OK就配置成功了。

 

注意:最后一定要記得重啟下電腦之后再運行相應的應用程序。

通過以上的步驟,再去運行selenium框架中的代碼,就沒有拋錯,而是順利執行了。連接Microsoft Excel成功了。

 

總結:遇到問題還是需要抓住重點,反復排查,並且好好利用google, baidu這些有利工具,將所有搜索到的信息進行綜合考慮,最終得到解決方案。

 

 

 

 


免責聲明!

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



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