CSV を Markdown にオンラインで無料で変換

オンラインで CSV ファイルを Markdown に無料で変換します。ファイルをアップロードすると、クリーンで LLM 対応の出力が即座に得られます。サインアップなし、ファイルあたり 50 MB、何も保存されません。

CSVをMarkdownに変換する:書き出したデータをモデルに読める形にする

生のCSVは、技術的には言語モデルにも読めます。ただし、データの渡し方としては最悪の部類です。どの行も 目印のないカンマ区切りの値の羅列で、ヘッダーは一番上に一度出るきり。40行目あたりでモデルは、どのフィールドが どれなのかをカンマの数を数えて突き止めようとしています。「3番目の商品の粗利は?」と聞けば、粗利がどの列に あるかを堂々と取り違えた答えが返ってきます。

Markdownのパイプ表はこれを解決します。列は揃い、ヘッダー行はその下の区切り線によってヘッダーだと明示され、 どのセルも見た目で位置が分かります。モデルはこの形式の扱いが得意です。README、ドキュメント、GitHubのissueと、 学習データのいたるところに出てくるからです。上に.csvをアップロードすれば、数秒で表が返ってきます。 無料、登録不要、何も保存しません。

CSVをMarkdownの表にすると何が得られるか

構造上の違いは紙の上では小さく、実運用では大きく効きます。

  • ヘッダーが一意になります。|---|---|という区切り行が、どのMarkdown パーサーにも——そしてそれを何百万回と読んできたモデルにも——上の行はデータではなく列名だと伝えます。
  • 列方向の推論が楽になります。「下降傾向にある地域はどこか」「価格列の外れ値を探して」 といった問いは縦に読む必要があります。パイプ表は縦読みを構造として使える形にしますが、カンマの羅列は そうではありません。
  • 空セルが見えたままになります。生のCSVではa,,cは読み違えやすい形です。 | a | | c |なら空きが一目で分かります。欠損そのものが問いの対象であるときに効いてきます。
  • 貼り付けても壊れません。チャット、GitHubのコメント、Notionのページ、ドキュメントサイトの どこに落としても、文字の染みではなく本物の表として描画されます。散文やコードと同じプロンプトに 同居させても、モデルが三者を混同しません。

区切り文字と引用符、そして「CSV」という嘘

CSVに単一の標準はありません。あるのはゆるい合意だけで、人々はそこから絶えず逸脱します。パースする側は いくつもの現実を引き受けなければなりません。

区切り文字はいつもカンマとはかぎりません。ドイツ語、フランス語、スペイン語、オランダ語の ロケールに設定されたシステムからの書き出しは、たいていセミコロンを使います。それらの地域ではカンマが 小数点だからです。タブ区切りのファイルが.csv拡張子で保存されているのも日常茶飯事です。 パイプ区切りは古いデータベースの書き出しに出てきます。区切り文字の判定は、先頭の数行をサンプリングして フィールド数が一貫する候補を選ぶ方式です。通常のケースでは信頼できますが、最初の数行の自由記述に たまたまセミコロンが多いファイルには騙されることがあります。

引用符で囲まれたフィールドは区切り文字を含みます。定番は住所です。 "山田, 太郎",42,"東京都, 日本"は5フィールドではなく3フィールドです。二重引用符で囲まれたものは、 中身が何であれ1つの値であり、それは埋め込まれた改行についても同じです。複数行のテキストが入るコメント列は CSVとして正当で、ファイル上では数行にまたがりながら、なお1つのセルです。引用フィールドの中の引用符は 二重にしてエスケープします。"彼は""いいえ""と答えた"のように。これらはすべて処理されます。 素朴なカンマ分割スクリプトが現実の書き出しで壊れ、ちゃんとしたパーサーが壊れない理由がここにあります。

知っておく価値のある副作用が1つあります。データにパイプ記号そのものが含まれる場合、Markdownの出力側で エスケープしないと表が崩れてしまいます。これは処理されますが、つまりa|bを含むセルは、 出力では元のファイルと少し違う見た目になります。

ヘッダー、列数の揃わない行、表になりきっていないファイル

CSVファイルには、1行目がヘッダーかどうかを宣言する手段がありません。推測するしかないのです。1行目がすべて 文字列で、その下の行に数値や日付が入っていれば、まず間違いなく列名です。どの行も同じように見える場合でも、 1行目はヘッダーとして扱われます。圧倒的にそちらが多いからです。本当にヘッダーのないファイルなら、 最初のデータ行がヘッダーの位置に繰り上がっているのが見えるはずです。気づくのは簡単で、変換前に ヘッダー行を1行足せば直ります。

もう1つよくあるのが列数の揃わない行——ヘッダーより多い、あるいは少ないフィールドを持つ行——です。 手で編集されたファイル、ファイルの前のほうにあるエスケープ漏れの引用符が以降の位置をすべてずらしている、 書き出しが末尾に合計行を付け足している、あたりが原因です。Markdownの表は列数が固定である必要があるので、 短い行は詰め物をされて形だけは保たれます。表の一区画がまるごと1列ずれて見えるなら、その上に 対になっていない引用符がないか探してください。ほぼ必ずそれが犯人です。

BIツールは本当のヘッダーの前にレポート名と日付を差し込みがちです。それらの行も表の一部として読まれます。 先に消しておいてください。

Excel由来のCSVとその癖

世の中のCSVファイルのかなりの割合はExcelから出てきたもので、Excelは指紋を残します。

  • 先頭のBOM。ExcelはUTF-8の書き出しにバイトオーダーマークを付けるので、それを 取り除かないツールでは最初の列名に見えないゴミが付きます。ここでは除去されます。
  • 数値にされてしまった値。桁の長いIDが1.23457E+14として保存されるのは、 Excelがそれを数値だと判断したからです。この破壊はCSVが存在する前、スプレッドシートの段階で 起きています。どんな変換ツールも元には戻せません。書き出す前に、元の列の書式を文字列にしてください。
  • 先頭のゼロが消える。郵便番号や商品コードが同じ理由で失われます。
  • 日付が組み替えられる。マシンのロケールに合わせて書き換えられ、その結果 03/04は永遠に曖昧なままになります。
  • エンコーディングの取り違え。Windowsの「CSVとして保存」は、環境によってUTF-8ではなく CP932(Shift_JIS)で書き出します。日本語が譁�蟄怜喧縺����のように なっていたら、それはエンコーディングの取り違えによる文字化けです。「CSV UTF-8」で書き出し直せば 消えます。

書き出したCSVではなく元のブックがまだ手元にあるなら、 ExcelをMarkdownにで直接 変換すればこの大半を飛ばせます。XLSXならセルの型が保たれますし、誰かが保存したときにたまたま アクティブだった1枚ではなく、全シートが手に入ります。

Markdownが正解ではない場面

パイプ表にはサイズの天井があり、それは思われているより低い位置にあります。行ごとにパイプと詰め物の代金を 払うので、同じデータを素の値で持つ場合より明確にトークンを食います。200行のファイルなら無関係な話です。 5万行の書き出しでは、コンテキストに収まるか収まらないかの差になります。

もう1つの限界は横幅です。40列の表はたいていのビューアで折り返されて判読不能なスープになり、そもそも この形式を選ぶ理由だった桁揃えの利点が消えます。だいたい12列を超えたあたりから、天秤は逆に傾き始めます。

そういう場合はCSVをプレーンテキストにを 使ってください。表の足場なしで値だけが手に入るので、大きなファイル、埋め込み、スクリプトへの流し込みには こちらが向いています。ページ上部の形式切り替えは両者を行き来し、選んだファイルもそのまま保持します。 出力の下のトークンカウンターを見れば、表版が予算に収まるかどうかがその場で分かります。

これが元を取る場面

  • チャット窓でのその場の分析。クエリ結果を書き出し、変換し、貼り付け、質問する。 数百行程度なら、分析コードを書くよりこちらが速いです。
  • ドキュメント作成。CSVからMarkdown表を生成するのは、設定用の スプレッドシートからREADMEやドキュメントページの表に至る最短経路です。
  • データの目視レビュー。列が揃っていれば、異常はモデルだけでなく人間にも見えます。 フィールドが1つ入れ替わった行を見つけるのは、表のほうが圧倒的に楽です。GitHubのissueでサンプルデータを 見せるとき、生のCSVコードブロックより表のほうが読みやすいのも同じ理由です。
  • データとコードを組み合わせる。CSVを変換したうえで、 GitHubをテキストに変換するツールで プロジェクトも変換し、自分のパース処理がこのファイルの中身を本当に扱えているかをモデルに 確認させてみてください。

よくある質問

CSVファイルをMarkdownの表に変換するには?

上で.csvをアップロードすれば、パイプ表として返ってきます。README、issue、ドキュメントページ、プロンプトにそのまま貼れる状態です。無料、1ファイル50MBまで、登録不要。1行目はヘッダーとして扱われますが、これはほぼすべてのCSV書き出しが作る形です。

CSVにヘッダー行がない場合はどうなりますか?

最初のデータ行がヘッダーに繰り上がり、その分が本文から消えます。いちばん簡単な対処は、アップロード前に元ファイルへヘッダー行を1行足すことです。col1,col2,col3のような仮の名前でも構いません。Markdownのパイプ表は構文上ヘッダー行を必須としていて、何かがそこを埋めなければならないからです。

どのくらいの大きさのCSVならMarkdownに変換する価値がありますか?

実際のところ数百行までです。Markdownの表にはページ送りも並べ替えもスクロールもありません。1万行の表は誰の役にも立たないパイプの壁で、モデルに貼り付ければ大量のコンテキストを燃やします。先にスプレッドシート側で必要な行だけ絞り込み、その部分集合を変換してください。

データの中のパイプ記号はエスケープされますか?

されなければ困ります。セルの中のエスケープされていない|は列の境界として読まれ、それ以降の値を黙ってすべてずらしてしまうからです。パイプを含むデータ——ログ行、一部のURL、コマンド例——を扱っているなら、思い込まずに、パイプを含む行を出力側で1つ確認してください。

この表はGitHubで表示されますか?

されます。ここが出力するのはGitHub Flavored Markdownのパイプ表そのものなので、README、issue、プルリクエストの説明文、ディスカッションのコメントで手を加えずに描画されます。同じ構文はGitLab、Obsidian、Notionへのインポート、そしてたいていの静的サイトジェネレーターでも通ります。

関連する変換ツール

1ページで全部済ませたいなら、File2Txtが 対応形式のファイルを何でも受け付けます。ほかの構造化形式については、平たいグリッドに収まらない 入れ子データを扱うJSONをMarkdownにXMLをMarkdownにがあり、 保存したWebページから表を抜き出すには HTMLをMarkdownにがあります。 文書はPDFをMarkdownに変換を通します。

コード側にはGitLab変換ローカルフォルダ変換があり、公開中のページを 取得するWeb2Txtもあります。 ファイルをテキストに変換するガイド では、もう少し広い作業の流れを扱っています。

Repo2Txtを開発・運営しているのは v12hero、 プライバシー最優先のネイティブアプリとWebアプリを作る独立系デベロッパーです。