FIRST CH TOOLS / 28 Markdown Table
Markdownテーブル整形&CSV/TSV変換
Excelやスプレッドシートからコピーした表を左に貼ると、Markdownの表になって右に出ます。区切り文字(タブ・カンマ・セミコロン)は自動で判定し、全角文字を2桁として数えて縦線を揃えます。逆にMarkdownの表を貼れば CSV ・TSV ・HTML ・JSON へ書き出せます。
貼り付けるとその場で変換されます
貼り付けた内容がブラウザの外へ出ることはありません(読み取りも組み立てもこのページの中だけで動いています)。ファイルの読み込みも端末内で読むだけで、アップロードは行いません。URLパラメータで直接呼び出せます: /markdown-table/?tsv=a%09b%0A1%092 / /markdown-table/?csv=a,b%0A1,2&to=html
Markdownの表で壊れやすいところ
見出し行と区切り行は省略できない
| 商品 | 単価 | | --- | --- | ← この行が無いと表として認識されない | ノート | 1200 |
Markdownの表はCommonMarkの仕様には無く、GitHub Flavored Markdown(GFM)の拡張です。GFMでは見出し行と、その下のハイフンの行(区切り行)が必須で、どちらが欠けても普通の文章として表示されます。見出しが要らないときは、このツールの「1行目の扱い」をデータにする(見出しは空欄)にしてください。見出しのセルを空のまま残した表が出ます。
列の数は見出し行が決める
| A | B | | --- | --- | | 1 | 2 | 3 | ← 3つ目のセルは表示されない | 4 | ← 足りない分は空セルになる
GFMは見出し行のセル数を列数として扱い、それを超えたセルは捨てます。逆に足りない行は空セルで埋められます。貼り付けたデータの列数が揃っていないと「一部のデータが消えた」ように見えるので、このツールはいちばん長い行に合わせて空セルを補い、補った行数を指摘に出します。
セルの中に | をそのまま書けない
| 条件 | 式 | | --- | --- | | または | a \| b | ← \| と書く(エスケープ)
縦棒はセルの区切りなので、値に含めるときは \| と書きます。コードスパン(`a | b`)の中でもエスケープが必要で、ここはよく間違えるところです(表の解析はコードスパンより先に行われるため)。このツールは貼り付けたデータの縦棒を自動でエスケープします。
セルの中で改行できない
| 項目 | 備考 | | --- | --- | | 送料 | 3,000円以上で無料<br>離島は別途 |
表の1行は1行で書き切る必要があり、セルの中に生の改行は書けません。改行したいときは <br> を入れます。Excelのセル内改行(Alt+Enter)を貼り付けると引用符に囲まれた改行として届くので、このツールは <br> か半角スペースへ置き換えます。逆にMarkdownの表を読むときは <br> を改行へ戻すので、CSVへ書き出せば元のセル内改行に戻ります。
配置は区切り行のコロンで決める
| 左 | 中央 | 右 | | :--- | :---: | ---: | | a | b | 1,200 |
左に : で左寄せ、両側で中央、右で右寄せです。コロンを付けない列は読む側の既定(多くは左寄せ)になります。金額や件数の列は右寄せにすると桁が読み取りやすくなるため、このツールは数値だけが並ぶ列を自動で右寄せにします(列ごとに選び直せます)。
桁を揃えても表示は変わらない(読みやすさのため)
| 商品名 | 単価 | | ------------ | ----: | | 和紙ノート | 1,200 | | 万年筆 | 8,800 |
縦線を揃えてもブラウザでの表示結果は同じです。揃える意味があるのは、エディタでソースを読むとき・差分(diff)を見るときです。全角文字は等幅フォントで2桁分の幅を取るので、文字数で揃えると日本語の表は揃いません。このツールは全角を2桁として数えるので、VS CodeやVimでは縦線がまっすぐ通ります(プロポーショナルフォントのエディタでは揃いません)。
Excelからのコピーはタブ区切り(TSV)
商品名→単価→数量 ← 「→」はタブ文字 和紙ノート→1,200→3
Excel・Googleスプレッドシート・Numbersで範囲をコピーしたときのクリップボードはタブ区切りです。カンマではないので、CSVとして読もうとすると1列になります。このツールは区切り文字を自動で判定しますが、うまくいかないときは「入力の形式」で指定してください。数値の桁区切りのカンマ(1,200)が入っているデータをCSVとして読むと列がずれるため、タブ区切りのまま貼るのが安全です。
CSVの引用符(RFC 4180)
商品名,備考 "ノート, A5","改行を 含むセル" "引用符は """" と書く"
カンマ・改行・引用符を含むセルは "…" で囲み、セル内の " は "" と2つ重ねます。このツールはこの規則で読み書きします。CSVへ書き出すときも、区切り文字・改行・引用符・前後の空白を含むセルだけを自動で囲みます。
Excelで開くCSVは文字コードに注意
UTF-8(BOM無し) → Excelで開くと文字化けすることがある UTF-8(BOM付き) → Excelで正しく開く Shift_JIS → 古い業務システム向け
このツールが読み書きするのはUTF-8です(先頭のBOMは読み取り時に自動で外します)。Shift_JISのCSVを読み込むと文字化けするので、先に文字コード・改行コード変換でUTF-8へ直してから貼り付けてください。
表の前後には空行を空ける
説明の文章。 | A | B | | --- | --- | | 1 | 2 | 次の段落。
直前の行が段落だと、表がその段落の続きと見なされて表にならない実装があります(GFMの仕様上も表はブロック要素として独立している必要があります)。表の前後には空行を入れるのが安全です。リストの中に表を置く場合は、表の各行をリストの内容と同じ深さまで字下げします。
セルの中のHTMLタグは解釈される
| タグ | 説明 | | --- | --- | | <b> | 太字になってしまう(文字として見せるならエスケープが必要) |
GFMはセルの中のHTMLをそのまま出力するので、<b> のようなタグはタグとして働きます。文字として見せたいときは HTMLエンティティ・特殊文字エスケープ で <b> に直してから貼ってください。このツールはタグを含むセルを見つけたら指摘に出します。
対応している入力: TSV(タブ区切り)・CSV(カンマ区切り・RFC 4180の引用符)・セミコロン区切り・Markdownの表(先頭と末尾の | の有無、区切り行のコロン、\| のエスケープ、<br> を含む)。出力: Markdownの表・CSV・TSV・セミコロン区切り・HTMLの <table> ・JSON(見出しをキーにしたオブジェクトの配列)。
How to Use
- 表を貼り付けるExcel・スプレッドシートで範囲をコピーして左の欄に貼ります。CSVファイルのドラッグ&ドロップ、Markdownの表の貼り付けにも対応しています。
- 整え方を選ぶ1行目を見出しにするか、桁を揃えるか、全角を2桁で数えるかを切り替えます。列ごとの配置(左・中央・右)も選べます。
- 結果をコピーする右の欄にMarkdownの表が出ます。出力の形式を変えれば、同じデータをCSV・TSV・HTML・JSONとしても書き出せます。
About This Tool
Markdownの表はCommonMarkの仕様には含まれていません。GitHub Flavored Markdown(GFM)の拡張で、GitHub・GitLab・Slack・Notion・Obsidian・多くの静的サイトジェネレーターが対応しています。仕様として決まっているのは「見出し行」「区切り行」「本文の行」の3つだけで、セルの中に書けるのは1行のインライン要素だけです。段落・リスト・コードブロックのようなブロック要素は入りません。
Excelからのコピーはタブ区切りで届きます。スプレッドシートで範囲を選んでコピーすると、クリップボードにはタブ区切りのテキスト(TSV)が入ります。カンマ区切りではないため、CSVとして読むと1列になってしまいます。このツールはタブ・カンマ・セミコロンのそれぞれで読んでみて、列数がいちばん揃う区切り文字を選びます。金額の桁区切り(1,200)が入ったデータでも列がずれないのはこのためです。判定を間違えたときは「入力の形式」で明示してください。
全角文字を2桁として数えます。縦線を揃えるかどうかは表示結果には影響しませんが、エディタでソースを読むとき・レビューで差分を見るときの読みやすさが変わります。日本語の表を文字数で揃えると、等幅フォントでは全角が2桁分の幅を取るため揃いません。このツールはUnicodeのEast Asian Width(Wide / Fullwidth)に当たる文字を2桁として数えるので、VS Code・Vim・ターミナルでは縦線がまっすぐ通ります。プロポーショナルフォントのエディタでは、どう数えても揃わない点にご注意ください。
数値だけの列は自動で右寄せにします。金額・件数・比率のように数値が並ぶ列は、右寄せにすると桁が縦に揃って読み違えが減ります。判定は「空でないセルがすべて数値の書き方(桁区切りのカンマ・小数点・通貨記号・%・単位を含む)である」ことを条件にしており、1つでも文字が混ざる列は対象外です。列ごとのセレクトで選び直せます。
壊れる書き方は自動で直します。セルの中の縦棒は \| にエスケープし、セル内の改行は <br>(または半角スペース)へ置き換えます。列数が足りない行には空セルを補います。直した箇所は黙って処理せず、件数を「読み取りの結果」に出します。
逆向きにも使えます。Markdownの表を貼れば、区切り行のコロンから配置を読み取ったうえで、CSV・TSV・HTMLの <table> ・JSON(見出しをキーにしたオブジェクトの配列)へ書き出せます。<br> は改行へ戻すので、CSVにすればセル内改行のあるデータとして表計算ソフトへ取り込めます。ドキュメントの表をそのまま集計へ回したいときに使ってください。
文字コードはUTF-8で読み書きします(先頭のBOMは自動で外します)。Shift_JISのCSVは文字コード・改行コード変換で先にUTF-8へ直してください。表の中で使う特殊文字のエスケープはHTMLエンティティ・特殊文字エスケープ、Markdown全体をPDFにするならMarkdown→PDF変換が使えます。
From AI Agents
この変換ロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcp の markdown_table ツールとしても提供しており、ブラウザを使わずAIエージェントから直接呼び出せます。ファイルパスを渡して読み書きもできます。導入方法の詳細は AIエージェントからの使い方 を参照してください。
導入
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
呼び出し例
# TSV を Markdown の表へ(区切り文字は自動判定・全角を2桁で桁揃え) markdown_table(text="商品名\t単価\n和紙ノート\t1200") # CSVファイルを読んで Markdown の表として書き出す markdown_table(path="/tmp/sales.csv", outputPath="/tmp/sales.md") # Markdown の表を CSV へ戻す markdown_table(text="| a | b |\n| --- | --- |\n| 1 | 2 |", to="csv") # 見出し無しのデータを col1… の見出しを付けて表にする markdown_table(text="1,2\n3,4", header="auto", align="right")
Other Tools
- 01画像→WebP一括変換WebP Converter
- 02白背景の透過White BG Remover
- 03コントラスト比チェッカーContrast Checker
- 04文字数カウントCharacter Counter
- 05llms.txt ジェネレーターllms.txt Generator
- 06JSON-LD構造化データ生成JSON-LD Generator
- 07Markdown→PDF変換MD → PDF
- 08OGPメタタグ生成ウィザードOGP Wizard
- 09faviconジェネレーターFavicon Generator
- 10TikTok投稿ツールTikTok Publisher
- 11文字コード・改行コード変換Encoding Converter
- 12画像→AVIF変換+picture生成AVIF Converter
- 13テストデータ生成Test Data Generator
- 14Marp Markdown→スライドMarp Slides
- 15テキスト・コード差分チェッカーDiff Checker
- 16Cron式ビジュアル解説&発火日時Cron Explainer
- 17Base64 & Data URI変換Base64 & Data URI
- 18URLパラメータ分解・UTMタグ編集URL Parameters
- 19HTMLエンティティ・特殊文字エスケープHTML Escape
- 20JSON ⇄ YAML 相互変換JSON ⇄ YAML
- 21PX ⇄ REM / EM 単位変換&スケール表PX ⇄ REM / EM
- 22Colorコード変換&アルファ透過Color Converter
- 23MD5 / SHA-256 ハッシュ生成Hash Generator
- 24JWTデコーダー&有効期限チェッカーJWT Decoder
- 25User-Agent解析&デバイス判定User-Agent Parser
- 26UUID (v4) & ULID 一括生成UUID & ULID Generator
- 27アスペクト比計算&レスポンシブサイズAspect Ratio Calculator
- 29SQLクエリフォーマッター&整形SQL Formatter
- 30QRコード生成QR Code Generator
- 31正規表現テスターRegex Tester
- 32UNIXタイムスタンプ⇄日時変換Unix Time Converter
- 33新規タブメモ帳 Chrome拡張New Tab Memo
- 34画像リサイズ&クロップImage Resizer
- 35EXIF情報の確認&除去EXIF Viewer
- 36robots.txt ジェネレーターrobots.txt Generator
- 37安全なパスワード生成Password Generator
- 38文字列ケース変換Case Converter