「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を行き来する作業には、以下のツールを活用してください。
- CSV to JSON変換:CSVをJSONに変換
- JSON to CSV変換:JSONをCSVに書き出し
- JSONフォーマッター:変換後のJSONを整形・確認