text / format
テキスト → テーブル変換
CSV・TSV テキストを Markdown テーブル形式に変換します。 1行目をヘッダーとして扱い、セル内の縦棒(|)は自動エスケープ。入力データはサーバーに送信されません。
区切り文字
CSV または TSV テキストを入力し、「変換」ボタンを押してください
使い方
01- 区切り文字を選択します(「カンマ」または「タブ」)
- 入力エリアに CSV または TSV テキストを貼り付けます。1行目がヘッダーになります
- 「変換」ボタンを押すと、Markdown テーブルが生成されます
- 「コピー」ボタンで出力をクリップボードにコピーできます
- 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ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →