首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

phpMyAdmin 匯入 Excel 資料到 MySQL 完整圖文教學

     編輯:MySQL 資料庫相關知識

phpMyAdmin 直接匯入 Excel (.xls/.xlsx) 或 CSV 是將試算表資料導入 MySQL 最便捷的方式。關鍵在於 **第一列必須為欄位名**、**工作表名稱對應資料表名**、以及 **匯入選項勾選「忽略第一行」**。本文詳述步驟與常見失敗排查。

前置準備:Excel 檔案規範

項目規範錯誤後果
第一列**必須為欄位名稱** (對應資料表欄位)phpMyAdmin 會將 A、B、C 當作欄位名,產生 INSERT INTO ... (A,B,C) 錯誤 SQL
工作表名稱**建議與目標資料表名稱相同**匯入時需手動對應,易出錯
資料型別Excel 格式與資料表定義一致 (日期、數值、文字)資料截斷、轉型失敗、預設值覆蓋
編碼儲存為 UTF-8 CSV 或 .xlsx (phpMyAdmin 4.8+ 支援)中文亂碼

匯入操作步驟 (phpMyAdmin 4.8+)

  1. 選擇目標資料庫 → 點擊頂部 **「匯入」** 分頁。
  2. 「選擇檔案」上傳 Excel/CSV。
  3. **格式** 選 CSV (若為 .xlsx 選 SQL 或 OpenDocument,視版本而定)。
  4. **關鍵選項**:
    • ✅ 「第一行包含欄位名稱」 / 「忽略第一行」 (勾選此項,phpMyAdmin 才不會把標題列當資料)。
    • ✅ 「使用資料表名稱作為工作表名稱」 (若工作表名=表名)。
    • 字元集:utf-8 / utf8mb4。
    • 分隔符:CSV 為 , 或 ; (依實際檔案)。
    • 跳過錯誤行數:0 (預設遇錯停止),大量匯入可設 10 略過髒資料。
  5. 點擊 **「執行」**,等待結果。

Excel 第一列欄位名稱範例

phpMyAdmin 匯入選項勾選忽略第一行

常見失敗與解決

錯誤現象原因解決
#1054 - Unknown column 'A' in 'field list'未勾選忽略第一行,phpMyAdmin 把標題列當欄位名勾選「第一行包含欄位名稱」或「忽略第一行」
#1062 - Duplicate entry 'xxx' for key 'PRIMARY'主鍵/唯一鍵衝突清空目標表、或匯入前刪除衝突資料、或使用 REPLACE/INSERT IGNORE (需 SQL 格式)
#1366 - Incorrect string value編碼不符 (Excel UTF-8, 表 latin1 / 反過來)統一 UTF-8/utf8mb4,CSV 用 Notepad++ 轉碼
日期欄位變 0000-00-00Excel 日期格式非 MySQL 識別格式Excel 設為 YYYY-MM-DD 文字格式,或匯入後 SQL UPDATE 轉換
大檔案逾時/記憶體不足phpMyAdmin PHP 限制 (upload_max_filesize, memory_limit, max_execution_time)分割檔案、改用 LOAD DATA INFILE / mysqlimport / ETL 工具

大量資料替代方案 (生產環境建議)

-- 1. CSV + LOAD DATA LOCAL INFILE (最快)
LOAD DATA LOCAL INFILE '/path/data.csv'
INTO TABLE target_tbl
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
IGNORE 1 LINES; -- 跳過標題列

-- 2. mysqlimport 命令列
mysqlimport --local -u root -p --ignore-lines=1 --fields-terminated-by=',' db_name /path/data.csv

-- 3. Python pandas + SQLAlchemy 批次寫入 (適合複雜轉換)
df.to_sql('target_tbl', engine, if_exists='append', index=False, chunksize=5000)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved