FormatArc CSV to JSON の変換結果FormatArc CSV to JSON の変換結果
公開日: 2026-03-20更新日: 2026-07-29

CSVファイルとは?書式・BOM・文字コード入門 (2026)

CSVとは

CSV(Comma-Separated Values)は、データをカンマで区切って並べたテキスト形式です。表計算ソフトが扱う行と列の構造を、プレーンテキストとして表現できるもっともシンプルなフォーマットといえます。

1970年代から使われている歴史の長い形式で、RFC 4180 として仕様が整理されています。Excel、Google スプレッドシート、データベースのエクスポート、業務システム間のデータ連携など、あらゆる場面で目にする機会があるでしょう。

手元の CSV を今すぐ JSON にしたい場合は CSV to JSON 変換ツール に貼り付けてください。登録もファイルアップロードも不要で、変換はすべてブラウザ内で完結します。

CSVの基本構造

行と列

1行が1レコード、カンマで区切られた各要素が1フィールドです。

田中太郎,30,東京
佐藤花子,25,大阪
鈴木一郎,35,名古屋

ヘッダー行

先頭行を列名(ヘッダー)として扱うのが一般的です。ヘッダーがあることで、各フィールドが何を意味しているのかが明確になります。

name,age,city
田中太郎,30,東京
佐藤花子,25,大阪
鈴木一郎,35,名古屋

ヘッダー行は仕様上必須ではありませんが、実務ではほぼ必ず含めます。ヘッダーがないと、3番目のフィールドが都市名なのか部署名なのか、データだけでは判断できません。

ダブルクォートのルール

フィールド内にカンマや改行が含まれる場合は、フィールド全体をダブルクォートで囲みます。

name,comment
田中太郎,"趣味は読書、ランニングです"
佐藤花子,"東京都渋谷区
神宮前1-2-3"

フィールド内にダブルクォート自体が含まれる場合は、ダブルクォートを2つ重ねてエスケープします。

title,note
商品A,"サイズは""M""です"

このルールを知らずにデータを作ると、パースが失敗する原因になります。

区切り文字の種類

「Comma-Separated Values」という名前ですが、実際にはカンマ以外の区切り文字を使うファイルも CSV と総称されます。

形式区切り文字よく使われる場面拡張子
CSVカンマ ,最も一般的。Excel やスプレッドシートの標準.csv
TSVタブバイオインフォマティクス、一部の DB エクスポート.tsv
セミコロン区切りセミコロン ;小数点にカンマを使う欧州圏(ドイツ語版 Excel など).csv
パイプ区切りパイプ |レガシーシステムで散見される.csv .txt

多くの CSV パーサーは区切り文字を指定できるため、これらの違いは扱いやすいことがほとんどです。日本語圏では、欧州で作られた CSV を開くとセミコロン区切りになっていて列がずれる、というケースに注意してください。

CSVとExcel・スプレッドシートの関係

Excel で「名前を付けて保存」からファイル形式に CSV を選ぶと、CSV ファイルが出力されます。逆に、CSV ファイルをダブルクリックすると Excel が起動して表形式で表示されます。

ただし、注意点もあります。Excel は CSV を開くときに独自の型推論を行うため、先頭がゼロの数値(007)が 7 に変換されたり、日付として解釈されたくない文字列が勝手に日付になったりすることがあります。

Google スプレッドシートでも CSV のインポート・エクスポートが可能です。「ファイル」から「ダウンロード」を選び「カンマ区切り形式」で CSV を取得できます。

Excel やスプレッドシートの表をそのまま README やドキュメントの Markdown テーブルにしたい場合は、Excel・Google スプレッドシートを Markdown テーブルに変換する方法 で範囲コピー → Markdown 変換の手順をまとめています。

文字コードに注意(Shift-JIS / UTF-8 BOM)

CSV ファイルを開いたときに文字化けする場合、ほとんどは文字コードの問題です。CSV 自体には文字コードを記録する仕組みがないため(RFC 4180 も文字コード指定を規定していません)、開く側が推測するか、外部から指定する必要があります。

日本語の CSV は特に注意が必要です。Windows の Excel から書き出した CSV は Shift-JIS(CP932)になっていることが多く、UTF-8 を前提としたツールで開くと文字化けします。逆に UTF-8 で保存した CSV を古い Excel で開くと文字化けすることもあります。

UTF-8 の場合はさらに BOM(Byte Order Mark、EF BB BF の 3 バイト) の有無で挙動が変わります。Excel は BOM 付き UTF-8(UTF-8-SIG)なら日本語を正しく認識しますが、BOM なし UTF-8 だと文字化けすることがあります。逆に Google スプレッドシートや多くの Web API は BOM を「余分な文字」として扱うため、BOM 付き CSV を読み込むと 1 列目のヘッダー名の先頭に見えない BOM 文字が付いてしまうことがあります。

Python の pandas で BOM 付き CSV を読むときは、エンコーディングに utf-8-sig を指定すれば BOM を自動で剥がしてくれます。

import pandas as pd
df = pd.read_csv("data.csv", encoding="utf-8-sig")

文字化けを避けるには、ツール側で文字コードを明示的に指定するか、UTF-8(BOM の有無をチームで揃える)に統一してから処理するのが安全です。

CSVの限界

CSV はフラットな表形式しか表現できません。階層構造(ネスト)を持つデータには不向きです。

たとえば「1人のユーザーが複数の注文を持つ」といったデータを CSV で表現しようとすると、行を繰り返すか列を増やすかの工夫が必要になり、データの扱いが煩雑になります。

また、CSV にはデータ型の概念がありません。30 が数値なのか文字列なのか、true が真偽値なのか文字列なのか、CSV ファイルだけでは判断できません。

CSVをJSONに変換するメリット

こうした CSV の限界を補うために、JSON への変換が役立つ場面があります。

構造化されたデータへの変換

CSV の各行を JSON オブジェクトに変換すると、ヘッダー行がキー名になり、各フィールドの意味が明確になります。

[
  {
    "name": "田中太郎",
    "age": "30",
    "city": "東京"
  },
  {
    "name": "佐藤花子",
    "age": "25",
    "city": "大阪"
  }
]

API連携への活用

REST API にデータを送信する場合、リクエストボディは JSON 形式が一般的です。Excel やスプレッドシートからエクスポートした CSV を JSON に変換すれば、そのまま API のリクエストに利用できます。

プログラムでの処理のしやすさ

JSON に変換しておけば、JavaScript の Array.filter()Array.map() でデータを加工するのも簡単です。CSV のまま扱うよりも、コードの可読性が上がります。

CSVからJSONへの変換方法

CSV to JSON を使えば、ブラウザ上で CSV を貼り付けるだけで JSON に変換できます。ファイルのアップロードは不要で、データがサーバーに送信されることもありません。

JSON の基本について知りたい方は JSONとは を、変換の詳しい手順は CSVをJSONに変換する方法 を参照してください。CSV のデータを Markdown のテーブルとして README やドキュメントに貼りたい場合は CSV を Markdown テーブルに変換する方法 を参照してください。元データが CSV ではなく表形式の JSON なら JSON を Markdown テーブルに変換する方法 が便利です。

CSV を扱うときの注意

自前でカンマ分割しない

カンマで split するだけの自作パーサーは手軽ですが壊れやすく、クォートされたフィールドやフィールド内の改行、エスケープされたダブルクォートで破綻します。各言語に CSV ライブラリがあるので、それを使うのが安全です。Python は csv モジュール、JavaScript は PapaParse などが定番です。

処理する前に検証する

外部から受け取った CSV は、構造が正しいと決めつけずに検証してから処理します。列数が全行で揃っているか、想定したヘッダーがあるか、必須フィールドが空でないかを確認すると、後段のエラーを減らせます。

今すぐ変換してみる

手元に JSON にしたい CSV ファイルがあれば、CSV to JSON 変換ツールにデータを貼り付けるだけで即座に変換できます。会員登録もファイルアップロードも不要で、すべてブラウザ内で完結します。

まとめ

  • CSV はカンマ区切りのシンプルなテキスト形式で、表形式のデータを表現する
  • ヘッダー行で各列の意味を定義するのが一般的
  • カンマや改行を含むフィールドはダブルクォートで囲む
  • Excel やスプレッドシートとの相互運用が容易
  • 階層構造やデータ型の表現には限界がある
  • JSON に変換することで、API 連携や構造化データとしての活用が広がる
  • 変換には CSV to JSON が便利