「Excelで開けるのに、CSVって何が違うの?」という疑問、意外と多いです。データをエクスポートしたら .csv というファイルが出てきた、Google スプレッドシートから「CSV形式でダウンロード」した、なんていう経験がある方も多いはずです。

CSVはExcelとは根本的に仕組みが違います。この記事では、CSVの基本的な構造から、Excelで開いたときに文字化けする理由、そしてJSONへの変換が必要になる場面まで、実務でよく遭遇する話を一通り解説します。

CSVとは?

CSV は Comma-Separated Values(カンマ区切り値)の略で、その名のとおり、データをカンマで区切って並べたテキストファイルです。拡張子は .csv。中身はただのテキストなので、メモ帳でも開けます。

name,age,city
Alice,30,Tokyo
Bob,25,Osaka
Carol,28,Nagoya

1行目がヘッダー(列名)、2行目以降が実際のデータです。構造はシンプルで、1行=1レコード、カンマ区切りで各フィールドを表します。

Excelの .xlsx ファイルとは全然違います。ExcelはMicrosoft独自の形式で、書式・数式・複数シートなど多くの情報をバイナリ形式で格納しています。一方CSVはテキストだけ。書式も数式も保存できません。

CSVの特徴と強み

  • どんなソフトでも読める:Excel、Google スプレッドシート、テキストエディタ、Pythonのpandas、どれでも扱える
  • 軽量:書式情報を持たないので、同じデータなら .xlsx より大幅にサイズが小さい
  • システム間の受け渡しに強い:データベースのエクスポート、APIのレスポンス、業務システムとの連携など、データのやりとりにはCSVが使われることが多い
  • バージョン管理しやすい:テキストファイルなのでGitで差分が取りやすい

ただし、カンマを含む値(例:住所の「東京都, 渋谷区」)はダブルクォートで囲む必要があります。

name,address
Alice,"Tokyo, Shibuya"
Bob,"Osaka, Namba"

実際の使い方とよくあるつまずきポイント

Excelで開くと文字化けする問題

日本語が入ったCSVをWindowsのExcelで開くと文字化けすることがあります。これはBOM(Byte Order Mark)の問題です。Excelは文字コードの自動判定が得意ではなく、UTF-8で保存されたCSVを正しく認識できないことがあります。

対処法は2つあります。

  • CSVを UTF-8 BOM付き で保存する(ExcelがUTF-8と認識してくれる)
  • Excelの「データ」タブ→「テキストファイル」からインポートし、文字コードをUTF-8に指定する

JSONへの変換が必要になる場面

CSVは表形式のデータには向いていますが、Web APIやフロントエンドのコードで使う場合はJSONのほうが扱いやすいことが多いです。たとえば、スプレッドシートで管理しているマスタデータをAPIで返したい、React/Vueのコンポーネントにデータを渡したい、といった場面でCSV→JSON変換が登場します。

CSV to JSON変換ツールを使えば、コードを書かずにブラウザ上で変換できます。逆にJSONをCSVに戻したい場合はJSON to CSV変換ツールが便利です。また、JSONの構造を整理したり確認するにはJSONフォーマッターも合わせて使うと作業がスムーズです。

よくある質問(FAQ)

CSVとExcelファイル(.xlsx)の違いは何ですか?
CSVはプレーンテキストで、データの値だけを保持します。書式・色・数式・複数シートなどは保存できません。Excelファイル(.xlsx)はMicrosoft独自のバイナリ形式で、これらすべてを保存できます。データを別のシステムに渡したい場合はCSV、Excelの機能をフル活用したい場合は.xlsxを使うのが基本的な使い分けです。
文字化けしたCSVを直すにはどうすればいいですか?
多くの場合、文字コードの不一致が原因です。ファイルがUTF-8で保存されているかを確認し、ExcelはBOM付きUTF-8を期待しているのでその形式で保存し直すか、Excelのインポート機能を使って文字コードを手動で指定してください。VS Codeやメモリパッドなどのテキストエディタでファイルを開き、「別名で保存」から文字コードを変換する方法もあります。
CSVをJSONに変換するには?
ブラウザ上で作業するならCSV to JSON変換ツールが手軽です。コードで処理するならPythonの csv モジュールやpandasが定番で、JavaScriptならPapaParseというライブラリがよく使われます。変換後のJSONは1行1オブジェクトの配列形式になるのが一般的です。

まとめ

  • CSVはカンマ区切りのシンプルなテキストファイルで、どんな環境でも読める
  • Excelとの大きな違いは「書式・数式・複数シートを持てない」こと
  • 日本語入りCSVをExcelで開くときはBOM付きUTF-8に気をつける
  • Web開発ではCSVをJSONに変換して使う場面が多い

CSVとJSONを行き来する作業には、以下のツールを活用してください。