首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Excel 透過 ODBC 連接 MySQL 資料庫實作教學

     編輯:MySQL 綜合教學

前言

Excel 仍是企業數據分析最普及工具。透過 MyODBC 驅動,Excel 可直接連接 MySQL、PostgreSQL、Oracle 等主流資料庫,實現即時數據刷新、樞紐分析與圖表視覺化。本文以 MySQL 為例,完整示範安裝、配置與連接流程。

前置準備

  • MySQL 伺服器已運行,防火牆開放 3306 port
  • 具備資料庫讀取權限的帳號
  • Windows 作業系統

步驟 1:下載並安裝 MyODBC

  1. 下載:MySQL Connector/ODBC (約 2-3 MB)
  2. 執行安裝,選擇「典型安裝」即可
  3. 完成後系統將註冊 ODBC 驅動

步驟 2:配置 ODBC 資料來源 (DSN)

  1. 開啟 ODBC 資料來源管理員:
    • Windows 10/11:開始 → 輸入「ODBC」 → 「ODBC 資料來源 (32 位元/64 位元)」
    • 控制台 → 系統與安全性 → 管理工具 → ODBC 資料來源
  2. 切換到 系統 DSN 或 使用者 DSN 索引標籤 → 新增
  3. 選擇 MySQL ODBC 8.0 Unicode Driver (或對應版本) → 完成
  4. 填寫連線參數:
    欄位範例值說明
    Data Source NameMySQL_Contacts自訂 DSN 名稱
    DescriptionContacts DB描述
    TCP/IP Serverlocalhost / 192.168.1.100伺服器 IP,本機可用 . (命名管道)
    Port3306預設連接埠
    Userexcel_user資料庫帳號
    Password******密碼
    Databasecontacts預設資料庫 (可留空)
  5. 點擊 測試 → 顯示「連線成功」 → 確定

步驟 3:Excel 匯入 MySQL 數據

  1. 開啟 Excel → 資料 索引標籤 → 取得資料 → 從其他來源 → 從 ODBC
  2. 選擇剛建立的 DSN (MySQL_Contacts) → 確定
  3. 導覽器選擇資料表/檢視表 (如 contacts) → 載入
  4. 選擇載入至:現有工作表 / 新工作表 / 僅建立連線 → 確定

範例資料表結構

CREATE TABLE contacts (
    rowid    SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    firstname VARCHAR(20) NOT NULL,
    lastname  VARCHAR(30) NOT NULL,
    email     VARCHAR(55) NOT NULL,
    title     VARCHAR(20) NOT NULL,
    company   VARCHAR(30) NOT NULL,
    phone     CHAR(10) NOT NULL,
    revenue   DECIMAL(5,2) NOT NULL,
    PRIMARY KEY (rowid)
);

進階應用

  • 樞紐分析: 插入 → 樞紐分析表,拖曳欄位快速統計
  • 圖表視覺化: 依收益、區域、職稱繪製圓餅圖、長條圖
  • 跨表查詢: 資料庫建立 VIEW,Excel 連接 View 即可
  • 自動重新整理: 資料 → 查詢與連線 → 內容 → 設定重新整理間隔

常見問題排查

總結

Excel + MyODBC 打通「試算表分析」與「關聯式資料庫」的最後一哩路。掌握此技能,讓業務人員脫離 IT 依賴,自助完成數據探索與報表產出。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題原因解決
測試連線失敗防火牆阻擋 3306 / bind-address=127.0.0.1開放 port、修改 my.cnf bind-address=0.0.0.0
架構不符 (32/64 位元)Excel 32 位元需 32 位元 ODBC 驅動安裝對應位元版 MyODBC
中文亂碼字元集不一致DSN 進階設定指定 charset=utf8mb4
權限不足帳號缺乏 SELECT 權限GRANT SELECT ON db.* TO 'user'@'%'