piapia123
ja

表の変換(CSV / TSV / Markdown / HTML / JSON)

テキスト

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

区切りテキストを別の表記に変換します。Excel やデータベースから書き出した CSV、ターミナルのタブ区切り、ドキュメントの Markdown 表を貼り付けると、Markdown 表・ASCII 罫線表・HTML の table・JSON 配列・CSV に変換できます。区切り文字は自動判定(タブを優先)し、手動でも指定できます。引用符は RFC 4180 に沿って処理するため、「Smith, John」のようなカンマを含むフィールドが 2 列に割れることはありません。列幅は表示幅で計算するので、全角文字の列が 1 文字ずつずれていくこともありません。見出しのない表では「先頭行はデータ」にチェックを入れると、先頭行が見出しとして取り除かれることはありません。

機能

  • 5 種類の出力:Markdown 表、ASCII 罫線表、HTML table、JSON 配列、CSV
  • ASCII 出力は「整列(罫線あり)」と「コンパクト(罫線なし・列間隔だけで整列)」の 2 形態から選べます
  • 区切り文字を自動判定(タブ・カンマ・縦線・空白)。手動指定も可能
  • CSV の引用符と "" エスケープを RFC 4180 に沿って処理
  • 見出しのない表に対応。先頭行が列名として取り除かれません
  • Markdown 表をそのまま貼り戻せます。区切りの行は自動で読み飛ばします
  • 列幅を表示幅で揃えるため、全角文字の列もずれません
  • 列数が足りない行は、最も多い行に合わせて補います
  • HTML 出力は & < > " をエスケープするので、そのままページに貼れます
  • JSON 出力は先頭のゼロを保持(007 は文字列のまま。数値の 7 にはなりません)

使い方

  1. CSV・TSV・Markdown 表を貼り付けます。既定では先頭行が見出しです
  2. 出力形式を選ぶと、結果はその場で更新されます
  3. 見出しのない表では「先頭行はデータ(見出しではない)」にチェックを入れます
  4. 区切り文字の判定が違う場合は、手動で指定してください
  5. 結果をコピーします。JSON と HTML は自動で色分けされます

よくある質問

JSON 出力で数値に引用符が付くのはなぜですか?
表のセルはすべてテキストであり、テキストの形を保つ必要がある値があるためです。たとえば社員番号の 007 は数値として扱った瞬間に 7 になります。郵便番号やマイナンバーも同じ問題を抱えています。そのため値は常に文字列で出力します。数値が必要な場合はコード側で変換してください。
Excel や Google スプレッドシートからコピーすると何区切りになりますか?
タブ区切りです。そのため自動判定ではタブを最優先にしています。表計算ソフトからコピーした内容では、カンマはデータの中にほぼ必ず現れます(住所や金額の桁区切り)が、タブは現れません。
見出しに同じ列名が 2 つある場合はどうなりますか?
Markdown・ASCII・HTML は同じ名前の列を表現できるため、そのまま出力します。JSON だけは不可能です。オブジェクトは同じ名前のキーを 2 つ持てず、片方を黙って捨てると、揃っているように見えて 1 列欠けたデータを渡すことになります。そのためこの場合は明確にエラーとし、列名の変更を求めます。
見出しがなく、先頭行がデータの場合はどうすればよいですか?
「先頭行はデータ(見出しではない)」にチェックを入れてください。チェックしないと先頭行は列名として扱われ、データから 1 行消えます。しかも「列名」はそれらしく見えるため、気づきにくいまま進んでしまいます。形式ごとの扱いは次のとおりです。CSV は見出し行を出力しません。JSON は配列の配列になります(列名がなければキーもなく、「列1」のような名前を勝手に作るとデータに存在しない内容を書き加えることになります)。ASCII 罫線表と HTML は見出しの行・thead を省きます。Markdown は文法上どうしても見出し行が必要なため、空の見出しセルになります。
データは送信されますか?
いいえ。変換はブラウザ内で完結し、ページはリクエストを送りません。表のデータは顧客名簿や社内レポートであることが多く、それらが端末から出ることはありません。
「コンパクト」形態は何のためですか?
等幅の表組みが美化されない場所に貼るためです:コードのコメント、プレーンテキストのファイル、ターミナルのメモなど。そこでは `+---+` の罫線がかえって邪魔で、2 文字分の列間隔で十分に揃います。列幅の計算はどちらの形態も同じ(表示幅基準)なので、全角文字もずれません。

関連ツール