CSVファイル形式の解説

Comma-Separated Values · .csv

拡張子.csv
MIMEタイプtext/csv
種類表計算とデータ
開発元IETF (RFC 4180)
初版1972
ロイヤリティフリーはい
圧縮なし

CSVファイルとは

CSVファイルはプレーンテキストの表です。1レコードが1行で、フィールドは区切り文字(通常はカンマ)で分けられます。区切り文字、引用符、改行を含むフィールドは二重引用符で囲みます。シート、数式、書式、データ型はなく、読み込むプログラムが解釈するまではすべての値が文字列です。

形式はRFC 4180に記されていますが実装はさまざまです。欧州のロケールではカンマが小数点のためセミコロンがよく使われ、文字コードはUTF-8、Shift_JIS、その他のコードページのいずれもあり得ます。CSVの取り込みトラブルの大半はこの2点が原因です。

CSVが適している場面

強み

  • どこでも読める: スプレッドシート、データベース、スクリプト、テキストエディター
  • 小さく単純。生成しやすくバージョン管理での差分比較も容易
  • Webサービスのインポート・エクスポートの標準的な交換形式

制限

  • 書式、数式、複数シート、列の型がない
  • 区切り文字と文字コードがファイルに記録されない
  • 先頭のゼロや長い数字はExcelで不用意に開くと壊れる

CSVファイルの開き方

テキストエディターなら生の行が見えます。表として見るにはExcel、LibreOffice Calc、Googleスプレッドシート、Numbersで開きます。区切りがセミコロンだったり文字コードがUTF-8でない場合は、ダブルクリックではなくインポートダイアログを使うと列と日本語が正しく表示されます。

CSVへの変換・CSVからの変換

PDFレポートに閉じ込められた表はPDFからCSVでデータとして取り出せます。数式や書式も付けたいならPDFからExcelのほうが適しています。スキャンやスクリーンショットに印字された表は画像からExcelが先にセルを認識します。

よくある質問

Excelがデータをすべて1列に入れてしまうのはなぜですか?

Excelが区切り文字を誤って推測したためです。多くはファイルがセミコロン区切りなのにシステムのロケールがカンマを想定しています。データ→テキストまたはCSVからで区切り文字を選ぶか、最初に確認してくれるLibreOfficeで開いてください。

CSVで先頭のゼロを残すには?

CSV自体はゼロを保持しています。文字列を数値に変える際に落とすのはスプレッドシート側です。列を文字列として取り込むか、Excel向けにファイルを作るなら値を等号付きの引用符で囲んでください。

CSVの文字コードは何にすべきですか?

現在はUTF-8が安全な既定です。古いExcelはUTF-8の検出にBOMを必要とするため、BOMなしのファイルでは日本語が文字化けすることがあります。LibreOfficeとGoogleスプレッドシートはどちらも扱えます。

CSVファイルに複数のシートを持てますか?

いいえ。CSVファイルはちょうど1つの表です。複数シートのブックは複数のCSVファイルかXLSXに書き出します。