如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2023年1月15日

如何使用Excel讀取mySQL資料庫(含環境安裝)

作者: Fred F.M. Wang (FW知識瑣記) 日期:2023-1-15

筆者用Excel讀取過Access或SQL Server資料庫,最近嘗試使用Excel讀取mySQL資料庫,查了許多方法,經過幾次失敗的安裝,終於正確的安裝完成,並讓Excel可以讀取到mySQL資料庫,分享給需要的人。下面是我安裝的步驟與一些要注意的地方 :

我的電腦環境是:
. Windows 7 家用進階版
. Office 365專業增強版
. mySQL資料庫(使用UTF-8編碼) : 安裝在同一台個人電腦。


步驟一 下載並安裝 mysql ODBC Connector

1.1 首先,要了解您的Office版本是32位元或64位元,安裝的mysql ODBC Connector必須與Office是相同位元的版本,因為我電腦的Office是32位元版本,因此安裝32位元的mysql ODBC Connector。如何知道您Office版本是32位元或64位元的呢? 以Office 365為例,在Excel選單 : 檔案 > 帳戶 的畫面中,點擊"關於Excel"就可以看到您Excel版本了,如下畫面。    
    



1.2 下載 mysql ODBC Connector


 

步驟二 設定ODBC來源

       此步驟要設定一個mySQL資料庫的ODBC來源,因為步驟一安裝的mySQL ODBC Connector 32位元版本,因此必須在32 位元版本ODBC資料來源管理員內設定。此處要注意的是作業系統如果是Windows 7 64位元,就不能使用控制台ODBC資料來源管理員,因為它是64位元版本的。
       32位元版本ODBC資料來源管理員(Odbcad32.exe)位於 %systemdrive%\Windows\SysWoW64 資料夾(如: C:\Windows\SysWOW64)中。必須執行此程式來設定mySQL資料庫的ODBC來源才行。
       參考來源 ODBC 工具會顯示32 位元和64 位元- SQL Server

    如果使用錯誤版本的ODBC資料來源管理員,Excel在連接資料庫時會產生下面的錯誤訊息。
    




   安裝步驟 :    

  1. 在 ODBC資料來源管理員視窗的"使用者資料來源名稱" > 新增
  2. 選擇"MySQL ODBC 8.0 Unicode Driver”, 點擊[完成]

說明 : 因為資料庫建立時我採用Unicode編碼,因此要使用Unicode Driver




   
    3. 設定新的資料來源。
        點擊[完成]後,會顯示出mySQL connector設定對話窗,如下。

     填入個欄位 : 
  • Database Source Name : 自訂一個好辨識的資料庫來源名稱
  • 勾選 TCP/IP Server
  • hostname : localhost  (因為裝在同一台電腦)
  • User : <mySQL資料庫管理帳號>
  • Password : <mySQL資料庫管理密碼>
  • Database : <選一個資料庫>

註 : mySQL資料庫管理帳號在資料庫建立時,已經建立至少一個資料庫管理員帳號,或可以到資料庫建立一個新的資料庫管理帳號,並設定適當的存取權限提供連線存取。

 

 

步驟三 使用Excel讀取mySQL資料庫中的資料

選單 : 資料>取得資料>從其他來源>從 ODBC



    在”從ODBC” 對話方塊的”資料來源名稱(DSN)”,選擇步驟二中建立的資料來源名稱(如mysql-xampp8.1.2 )。

    如果您想要設定資料庫查詢條件,查詢並匯入資料,請在對話框"進階選項"的"SQL陳述句" 中下SQL命令。然後點擊 [確定]。

    





        顯示出查詢結果後,點擊[載入],就會將這些查詢結果匯入Excel工作表中了。


參考影片 : Excel Import MySQL Table with ODBC Database Query

整理三大容易發生錯誤的地方,要特別注意 : 

  • 安裝的mySQL ODBC Connector必須與Office是相同位元的版本。
  • 安裝的mySQL ODBC Connector 32位元版本,因此必須在32位元版本ODBC資料來源管理員內設定。(注意64位元Windows 7 控制台的ODBC資料來源管理員是64位元版本的)
  • 資料庫建立時採用Unicode編碼,因此資料來源設定時就要選擇MySQL ODBC Unicode Driver(不是ANSI Driver)


 



 

1 則留言:

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)