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

使用 Navicat 將 Excel 數據導入 MySQL:圖文教程

     編輯:PHP 綜合知識

為什麼選 Navicat?

  • 圖形化界面直觀,支援多種數據源導入(Excel、CSV、Access、ODBC...)
  • 字段映射、類型轉換、編碼處理可視化配置
  • 適合一次性/低頻遷移任務,無需編寫腳本

操作步驟

1. 創建連接

  • 主機:localhost,端口:3306
  • 用戶名/密碼:MySQL 賬號
  • 測試連接成功後保存

2. 創建目標數據庫

  • 右鍵連接 → 新建數據庫
  • 名稱:infosystem
  • 字符集選擇:gb2312 / gb2312_chinese_ci(若 Excel 含中文,防止亂碼;現代項目建議 utf8mb4/utf8mb4_unicode_ci)

3. 導入向導

  1. 選中數據庫 → 右上角「導入向導」
  2. 類型選 Excel 文件
  3. 選擇 .xls/.xlsx 文件及工作表
  4. 字段映射:自動識別標題行,調整目標表字段名、類型、長度
  5. 開始導入,查看進度與錯誤日誌

4. 驗證結果

  • 展開數據庫,雙擊新建表查看數據
  • 確認中文顯示正常、數值類型正確、日期格式無誤

常見問題與解決

問題原因解決
中文亂碼數據庫/表字符集非 gb2312/utf8mb4重建表指定正確字符集,或導入前轉碼 Excel 為 UTF-8
數值存為文本Excel 單元格格式為「文本」Excel 中全選列 → 數據 → 分列 → 完成,轉為常規/數值
日期導入錯誤Excel 日期格式與 MySQL 不兼容映射步驟手動指定目標類型為 DATE/DATETIME
主鍵衝突Excel 含重複 ID導入前去重、或目標表不設主鍵改用自增 ID
大文件導入超時Navicat 單次事務過大拆分 Excel 分批導入、或用 LOAD DATA INFILE 命令行

自動化替代方案(適合定期同步)

PHP + PhpSpreadsheet

composer require phpoffice/phpspreadsheet
// 腳本片段
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('data.xlsx');
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet->getRowIterator(2) as $row) { // 跳過標題行
    $data = [];
    foreach ($row->getCellIterator() as $cell) {
        $data[] = $cell->getValue();
    }
    // 入庫邏輯...
}

MySQL 原生 LOAD DATA(最高性能)

-- 先將 Excel 另存為 CSV (UTF-8)
LOAD DATA INFILE '/path/data.csv'
INTO TABLE target_table
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(col1, col2, col3, @date_col)
SET created_at = STR_TO_DATE(@date_col, '%Y/%m/%d');

總結

Navicat 適合人工、一次性、中小數據量的導入場景,操作門檻低。對於定期、大數據量、自動化需求,建議採用 LOAD DATA INFILE 或 PHP 腳本定時任務。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved