text / format

テキスト → テーブル変換

CSV・TSV テキストを Markdown テーブル形式に変換します。 1行目をヘッダーとして扱い、セル内の縦棒(|)は自動エスケープ。入力データはサーバーに送信されません。

区切り文字
CSV または TSV テキストを入力し、「変換」ボタンを押してください

使い方

01
  1. 区切り文字を選択します(「カンマ」または「タブ」)
  2. 入力エリアに CSV または TSV テキストを貼り付けます。1行目がヘッダーになります
  3. 「変換」ボタンを押すと、Markdown テーブルが生成されます
  4. 「コピー」ボタンで出力をクリップボードにコピーできます
  5. GitHub の README や Notion などに貼り付けてご利用ください

実装コード

02

コアロジックは標準の文字列操作のみで実装しています。 外部ライブラリは不要なので、そのままコピーしてプロジェクトに組み込めます。

export type Result<T> = { ok: true; output: T } | { ok: false; error: string }

/**
 * CSVまたはTSVテキストをMarkdownテーブルに変換する
 * 1行目をヘッダー、2行目以降をデータ行として扱う
 * セル内の | は \| にエスケープ
 */
export function csvToMarkdownTable(input: string, delimiter: '\t' | ','): Result<string> {
  const trimmed = input.trim()
  if (!trimmed) return { ok: false, error: '入力が空です' }

  const lines = trimmed.split('\n').map(l => l.trimEnd())
  if (lines.length < 1) return { ok: false, error: '入力が空です' }

  const parseRow = (line: string): string[] =>
    line.split(delimiter).map(cell => cell.trim().replace(/\|/g, '\\|'))

  const headers = parseRow(lines[0])
  const colCount = headers.length

  const headerRow = '| ' + headers.join(' | ') + ' |'
  const separatorRow = '| ' + headers.map(() => '---').join(' | ') + ' |'

  const dataRows = lines.slice(1).map(line => {
    const cells = parseRow(line)
    while (cells.length < colCount) cells.push('')
    return '| ' + cells.slice(0, colCount).join(' | ') + ' |'
  })

  const result = [headerRow, separatorRow, ...dataRows].join('\n')
  return { ok: true, output: result }
}

よくある使用例・注意点

03
スプレッドシートから Markdown に変換する
Google スプレッドシートや Excel でセルを選択してコピーすると、タブ区切りのテキストとしてクリップボードに入ります。区切り文字を「タブ」に設定して貼り付けると、Markdown テーブルに変換できます。
GitHub README のテーブル作成
GitHub の README.md にテーブルを追加したいときに便利です。CSV を貼り付けて変換し、そのまま README に貼り付けられます。
セル内に縦棒(|)がある場合
Markdown テーブルの区切り文字として使われる縦棒(|)がセル内にある場合、自動的にエスケープされます。多くの Markdown パーサーで正しく表示されます。
列数が揃っていない場合
データ行の列数がヘッダーより少ない場合は、空のセルで自動的に埋められます。ヘッダーより多い列は切り捨てられます。
プライバシーについて
入力したテキストはブラウザ内のみで処理されます。サーバーには一切送信されないため、機密情報を含むデータも安全に変換できます。

関連ツール

04
テキスト差分ツール文字数カウンターCSV ↔ JSON 変換

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →