表格轉 Markdown 工具怎麼用

把表格貼進本頁最上方的輸入框,步驟就結束了。沒有格式下拉選單可以選錯,也沒有匯入精靈要一步步點,因為轉換器會直接讀那段文字,自行判斷那是什麼。

重點摘要
  • 不論貼的是試算表複製的內容、CSV 文字或 HTML <table>,格式都由工具自動判斷。
  • 第一列自動成為標題列,下方那條對齊用的分隔列也會一併寫好。
  • 數字欄只需要一次手動調整:把分隔格改成 ---:,個位數就會靠右對齊。
  • 全程在你自己的分頁裡執行,客戶名單或內部預算表都不會被上傳。

輸入格式是怎麼判斷的

判斷規則只有三條,而且照順序檢查。文字裡含有 <table> 元素,就當成標記語言解析,從 <tr><td> 讀出每一格。文字裡含有定位字元(Tab),就視為 TSV,也就是你在 Excel、Numbers 或 Google 試算表複製儲存格時,剪貼簿實際帶著的格式。

其餘情況一律落到逗號這條規則,並尊重 CSV 的引號寫法。所以像 "台北, 台灣" 這種值會留在同一格,不會被切成兩格。

轉換器會替你補上什麼

第一列會成為表格的標題列。標題列下面補的是分隔列,也就是那條由連字號與冒號組成、讓一堆管線符號變成真正表格的關鍵。每一欄預設寫成 :--- 靠左。儲存格還會補空白到一致寬度,這在瀏覽器裡看不出差別,但程式碼審查時原始檔會好讀很多。

拿到結果之後貼到哪裡

把輸出貼進 README、GitHub issue、wiki 頁面或 Discord 訊息都可以。你也可以貼進首頁的 Markdown 編輯器,繼續把整份文件寫完。其他 Markdown 工具做法一樣,都在同一個分頁裡跑,不會把內容送到伺服器。

小提醒:先修資料,再做轉換。回試算表改一格再貼一次只要幾秒;補過空白的 Markdown 表格用手改就沒那麼輕鬆了。

插圖:試算表儲存格與 HTML table 標籤匯流成一個以管線符號分隔的 Markdown 表格

從 HTML 表格到 Markdown:完整範例

假設你正要把一個頁面從舊的 CMS 搬進程式碼倉庫。你打開原始碼、把表格那一段複製下來,剪貼簿裡的內容長這樣:

<table>
  <thead>
    <tr><th>Team</th><th>Lead</th><th>Headcount</th></tr>
  </thead>
  <tbody>
    <tr><td>R&amp;D</td><td>Mei Lin</td><td>42</td></tr>
    <tr><td>Support</td><td>Dave Okoro</td><td>18</td></tr>
    <tr><td>Sales &amp; Marketing</td><td>Ana Ruiz</td><td>7</td></tr>
  </tbody>
</table>

貼進轉換器之後,拿到的 Markdown 完全是這樣:

| Team              | Lead       | Headcount |
| :---------------- | :--------- | :-------- |
| R&D               | Mei Lin    | 42        |
| Support           | Dave Okoro | 18        |
| Sales & Marketing | Ana Ruiz   | 7         |

從輸入跳到這個結果的過程中,工具替你做了三個決定,每一個都值得說清楚。

轉換器默默做掉的三件事

  • <thead> 那一列成了 Markdown 的標題列,下面自動補上分隔列,正是手寫時最惱人的部分。
  • HTML 實體 &amp; 被還原成單純的 &,因為 Markdown 是純文字,用不到實體編碼。
  • 每一欄都補空白到相同寬度。渲染時會忽略這些空白,但看 diff 的同事會很感謝你。

整趟流程只有四步

  1. 從開始標籤到結束標籤,複製完整的 <table> 元素。
  2. 貼進本頁最上方的輸入框。
  3. Headcount 的分隔格從 :-------- 改成 --------:,因為那一欄放的是數字。
  4. 複製產生的 Markdown,貼進你的檔案。

第三步是整趟流程唯一需要動手的地方。想先確認結果,就把整段貼進編輯器:即時預覽會在它進入倉庫之前,先證明表格渲染得出來。

各種來源實際上貼出什麼

「複製表格」這句話,從不同地方複製的意思其實差很多,而這個差異決定了轉換是乾淨俐落還是要收拾殘局。

逐一來源:剪貼簿裡到底是什麼

以下是大家最常複製的來源、每一種實際交出的內容,以及各自最容易讓人踩雷的細節。

複製來源剪貼簿實際內容會判定為要注意的地方
Microsoft Excel以 Tab 分隔,一列一行TSV含換行的儲存格會被加上雙引號包起來
Google 試算表以 Tab 分隔的純文字TSV合併儲存格會貼成空格,造成各列長度不一
Apple Numbers以 Tab 分隔的純文字TSV貨幣與百分比格式會變成文字,例如 NT$1,200
LibreOffice Calc以 Tab 分隔的列TSV公式貼出來的是計算結果,不是公式本身
文字編輯器裡的 .csv 檔逗號分隔、必要時加引號CSV歐洲語系匯出的分號分隔檔不算 CSV
網頁原始碼或開發者工具原始的 <table> 標記HTML要複製完整元素,不能只複製零散的 <tr>
網頁上已渲染的表格被瀏覽器攤平成 Tab 分隔文字TSV儲存格裡的連結與粗體會在攤平時消失
Notion 資料庫檢視以 Tab 分隔的文字TSV多選欄位會把值用逗號串在一起
Word 或 Google 文件的表格以 Tab 分隔的文字TSV結尾的空儲存格可能多生出一個幽靈欄
PDF 裡的表格逐行文字,完全沒有分隔符號都不是先在試算表裡重建,再從試算表複製

為什麼試算表是最好的中繼站

最後一欄其實藏著一個規律:貼得乾淨的來源都是試算表,會出狀況的則都是「看起來像格線、其實不是」的東西。所以某個來源怎麼貼都不對時,先丟進 Excel 或 Google 試算表把欄位整理好,再從那裡複製到本轉換器。多按一次貼上,還是遠比重打三十列快。

注意:PDF 是唯一一種結構已經救不回來的來源。它的文字是逐行送出、完全沒有分隔符號,任何轉換器都猜不出原本的欄位在哪裡。

轉換器還是產生器:你要的是哪一個?

這一頁與 Markdown 表格產生器是完全相反的兩件事,選錯會白白多花幾分鐘。只要問一個問題就能分辨:資料已經存在了嗎?

資料在別的地方,就用轉換

手上已經有試算表、匯出檔、CSV 或一段 HTML 時,用這一頁。這是翻譯工作而不是創作,你不該重打任何一格。格式判斷、標題列與分隔列都由工具處理掉。

表格還不存在,就用產生

內容要邊想邊填時,用表格產生器:小型比較表、價目表、參數對照表都屬於這一類。它給你一張空格線,每一欄還有自己的對齊按鈕,比在純文字框裡跟管線符號搏鬥輕鬆得多。

小提醒:選得起來、複製得下來的,就用轉換;要自己想出來的,就用產生。這條規則每次都能決定答案。

三行 CSV 的實際結果

一個小例子就看得出這個方向有多省事。輸入這樣的內容:

Region,Q1,Q2
North,1420,1655
South,980,1130

立刻就會拿到這樣的結果:

| Region | Q1   | Q2   |
| :----- | :--- | :--- |
| North  | 1420 | 1655 |
| South  | 980  | 1130 |

如果你想真正弄懂語法而不只是產生它,Markdown 表格指南完整說明對齊、跳脫與儲存格內容,如何在 Markdown 中製作表格則給你最精簡的答案。表格從來不屬於原始的 Markdown,而是隨 GitHub 風格 Markdown 一起出現的,這也是為什麼沒有啟用擴充的嚴格 CommonMark 解析器,會把你的表格當成純文字原樣顯示。

常見問題與修法

幾乎所有失敗的轉換都逃不出四種情況,而且每一種都有看得見的症狀。從畫面上看到的現象往回推最快。

某一列被切成太多欄

幾乎都是資料裡混進了管線符號。| 正是欄位分隔符號,所以內容為 a | b 的儲存格會變成兩格。把它跳脫成 \| 就好:

| Pattern  | Meaning        |
| :------- | :------------- |
| cat|dog  | 這一列會壞掉    |
| cat\|dog | 正確的跳脫寫法  |

逗號在 CSV 裡會造成一樣的麻煩。台北, 台灣,2.6M 是三個欄位,"台北, 台灣",2.6M 才是兩個。請重新匯出並啟用引號,或改從試算表以 Tab 分隔的方式貼上,那樣根本不會發生這件事。

貼上 HTML 卻沒有任何輸出

先確認你複製的是含結束標籤的完整 <table> 元素。只從 <tr> 開始的片段,解析器根本找不到表格。從渲染後的網頁而不是原始碼複製也可以,只是那段文字已經被攤平,會被判定成 TSV。

列的形狀不對

  • 各列長度不一。合併儲存格與長短不齊的匯出檔,會產生比標題列少幾格的資料列。多數解析器不會替你猜,而是乾脆拒絕渲染,請用空儲存格補齊,讓每一列的管線符號數量一致。
  • 儲存格裡有換行。Markdown 的表格列必須待在同一行,請把換行改成 <br>
  • 儲存格需要好幾段文字、清單或程式碼區塊。那份內容已經不適合放進表格,改用有小標題的段落比較好,這個取捨在 Markdown 與 HTML 比較裡有完整討論。

輸出變成一整片夾著管線符號的文字

不是分隔列不見了,就是表格與上一段之間少了空白行。把整塊丟進 Markdown 檢視器確認語法無誤,再去懷疑目的地平台。也要記得太寬的表格在存成 PDF 時右側會被裁掉。整份文件的雙向轉換,則交給 HTML 轉 MarkdownMarkdown 轉 HTML

相容性資料驗證日期

常見問題

怎麼把 Excel 表格轉成 Markdown?

在 Excel 裡選取儲存格、複製,然後貼進本頁最上方的輸入框。剪貼簿帶的是以定位字元分隔的資料,轉換器會自動辨識,並輸出含標題列與對齊列的 Markdown 表格。Google 試算表與 Apple Numbers 的行為完全相同。

可以把 HTML 表格轉成 Markdown 嗎?

可以。貼上含結束標籤的完整 <table> 元素,工具會從每一列讀出儲存格內容,並把 &amp; 之類的 HTML 實體還原成一般字元。如果你要轉的是整份 HTML 文件而不只是一個表格,請改用 HTML 轉 Markdown 工具

支援 CSV 檔嗎?

支援。把檔案內容貼上即可,工具會以逗號作為分隔符號,並尊重引號包住的欄位,所以值裡面的逗號不會把儲存格切開。以分號分隔的匯出檔不會被判定為 CSV,請先把分隔符號改成逗號或 Tab 再貼上。

這和 Markdown 表格產生器有什麼不同?

這一頁轉換你已經有的表格;表格產生器則是在可編輯的格線裡從零建立新表格,並提供逐欄的對齊控制。已有資料就用轉換,還沒有表格就用產生。

我的資料會被上傳嗎?

不會。轉換完全在你的瀏覽器裡以 JavaScript 執行,不會傳送到伺服器,也不會被儲存或記錄。因此內部試算表、客戶名單這類你不會隨便貼到陌生網站的資料,在這裡都是安全的。

延伸閱讀

立即使用編輯器

開啟編輯器