UltKit

Excel 轉 SQL 轉換器

轉換器會產生一份 SQL 指令碼:依標題列建立資料表,並把下方每一列資料插入表中,引號格式依您選擇的資料庫而定。

資料轉換器

或將CSV, TSV, TXT … 檔案拖曳到這裡 ·

每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除

輸出

檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。

使用方式

  1. 1

    上傳活頁簿

    加入 XLSX、XLS 或 ODS 檔案。系統會讀取第一個工作表,並以第一列作為欄位名稱。每批最多 20 個檔案,每個檔案上限 95 MB。

  2. 2

    選擇 SQL 方言與資料表名稱

    開啟進階設定,將 SQL 方言設為要執行指令碼的資料庫,再輸入 SQL 資料表名稱,名稱可使用字母、數字與底線。

  3. 3

    轉換並執行指令碼

    按下轉換為 SQL,下載 .sql 檔案後,可在資料庫用戶端中執行,或交給資料庫隨附的命令列工具處理。

解答

如何將 Excel 轉成 SQL?

上傳活頁簿,在 SQL 方言選擇你的資料庫,再按下轉換為 SQL。你會得到一個 .sql 檔案,內含依標題列建立的 CREATE TABLE 陳述式,以及資料的 INSERT 陳述式,可直接執行。

Excel 轉 SQL:哪些人需要把工作表轉成 INSERT 陳述式

試算表是資料的起點,資料庫則是資料被運用的地方。開發人員收到業務團隊提供的 XLSX 商品目錄,下午前就要放進測試資料庫;分析師想把上一季的目標放在訂單資料表旁,用一個查詢就能比較。這些情況中,試算表的列都沒問題,但資料庫需要的是陳述式。

SQL 本身歷史悠久且穩定:ANSI 於 1986 年發布第一版 SQL 標準,ISO 於 1987 年採用。各資料庫之間仍有差異的是細節,主要是欄位名稱如何加引號,以及字串與日期如何書寫。因此轉換器會請你選擇方言,而不是產生一份通用指令碼。如果資料已經是純文字檔,CSV 轉 SQL 可以省去活頁簿這一步,完成相同的工作。

產生的指令碼中各 SQL 方言的差異

識別字以反引號包住,因此像 order date 這樣的標題也能保留為欄位名稱。指令碼可在 mysql 命令列用戶端、MySQL Workbench 或 phpMyAdmin 的 SQL 分頁中執行。

  • 字串使用單引號,內含的引號會重複一次來跳脫

Excel 轉 SQL 輸出範例

標題為 id、customer、signup_date 且含兩列資料的工作表,以 PostgreSQL 方言與資料表名稱 customers 轉換
CREATE TABLE "customers" (
  "id" INTEGER,
  "customer" TEXT,
  "signup_date" DATE
);

INSERT INTO "customers" ("id", "customer", "signup_date") VALUES
  (1, 'O''Neill Hardware', '2026-03-02'),
  (2, '光線設計工作室', '2026-04-15');

Excel 轉 SQL 轉換器與資料庫匯入精靈的比較

UltKit資料庫匯入精靈手寫指令碼
不需要連線到執行中的資料庫yesnoyes
輸出可供檢視、提交到 Git 並重複執行yesnoyes
自動跳脫名稱中的撇號yesyesno
日期改寫為 ISO 字面值yes取決於地區設定no
同一個檔案適用於 MySQL、PostgreSQL、SQLite 或 SQL Server選擇方言nono
檔案會在以下時間後刪除30 分鐘留在本機留在本機

Excel 與 SQL 格式小知識

XLSX

Microsoft Excel 活頁簿

XLSX 是自 Office 2007 起 Microsoft Excel 的預設活頁簿格式,以 Office Open XML 標準為基礎。它將多個工作表、公式、格式、圖表、樞紐分析表與資料驗證,儲存在由 XML 組成的 ZIP 封裝中。每個工作表支援超過一百萬列,是商務試算表預設的交換格式。Google 試算表、LibreOffice 與 Numbers 都能開啟 XLSX,但巨集與進階功能可能無法完整保留。

壓縮方式
–
透明度
–
動畫
–
推出年份
2007 · Microsoft
XLSX 轉檔工具

SQL

SQL 腳本

SQL 檔是由結構化查詢語言(SQL)敘述組成的純文字腳本,例如 CREATE TABLE 和 INSERT,供資料庫依序執行。常用於資料庫備份、遷移和分享範例資料。這個語言本身是 ISO 標準,但 MySQL、PostgreSQL、SQLite 和 SQL Server 各有自己的語法差異,因此腳本在不同系統之間常需要小幅修改。任何文字編輯器都能開啟 SQL 檔,但要執行則需要資料庫用戶端。

壓縮方式
–
透明度
–
動畫
–
推出年份
–
SQL 轉檔工具

當人工維護的清單(例如價目表、客戶匯出檔或新應用程式的種子資料)需要變成可供查詢、關聯與限制條件運作的真正資料表時,就需要將 Excel 轉成 SQL。

Excel 轉 SQL 常見問題

MySQL 方言也適用於 MariaDB 嗎?

可以。MariaDB 於 2009 年從 MySQL 分支而來,至今仍支援反引號包住的識別字與相同的 INSERT 語法。Amazon RDS 等代管服務執行的是一般的資料庫引擎,因此請依引擎選擇方言,而不是依代管品牌。

Excel 日期會如何寫入 SQL 檔案?

Excel 以 1900 年起算的天數儲存日期,直接讀取會寫入 46313 這類數字。本頁將日期設為 ISO,會寫成 '2026-10-18',MySQL、PostgreSQL、SQLite 與 SQL Server 的日期欄位都接受這種字面值。

一份 SQL 指令碼能容納多大的工作表?

XLSX 工作表最多 1,048,576 列,舊版 XLS 為 65,536 列。這麼大的指令碼檔案很龐大,請先確認伺服器限制:MySQL 8.0 會拒絕超過 max_allowed_packet(預設 64 MB)的單一陳述式。工作表非常大時,先用 Excel 轉 CSV 取得純文字檔,再搭配資料庫的大量匯入工具會更快。

可以自訂資料表與欄位名稱嗎?

資料表名稱來自 SQL 資料表名稱,最多 64 個字元,可使用字母、數字與底線。欄位名稱取自工作表第 1 列,若想要 order_date 這類 snake_case 名稱,請先在 Excel 中修改標題。

公式和格式會怎麼處理?

資料庫儲存的是值,因此每個公式儲存格都會以最後一次計算的結果寫入。字型、填滿色彩、註解與圖表都不會進入指令碼。

為什麼在 PostgreSQL 中欄位名稱變成小寫?

PostgreSQL 會把未加引號的識別字轉成小寫,所以 OrderDate 與 orderdate 是同一欄,除非名稱以雙引號包住。PostgreSQL 方言會為識別字加上引號,因此會保留標題列中輸入的大小寫;之後查詢時也要使用相同的引號。