2023年1月17日
哪種人適合台積電?她道內部文化3特質 坦言「做得很痛苦」-- 感想
Codeigniter系統異常登出問題 "Session Error" 原因與解決方法
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
- 下載網址 : https://dev.mysql.com/downloads/file/?id=513647
- 下載與執行的檔案為 : mysql-connector-odbc-8.0.31-win32.msi
步驟二 設定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在連接資料庫時會產生下面的錯誤訊息。
安裝步驟 :
- 在 ODBC資料來源管理員視窗的"使用者資料來源名稱" > 新增
- 選擇"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)