CSVとは

CSV(Comma-Separated Values)は、カンマ(,)でデータを区切ったテキストファイル形式です。1行が1レコード、カンマで区切られた各値がフィールドに対応します。シンプルな構造のため、あらゆるプログラミング言語・ツールで扱えます。

基本的な構造

名前,年齢,都市
田中太郎,30,東京
佐藤花子,25,大阪

1行目をヘッダー行として使うことが一般的ですが、仕様上の決まりはありません。値にカンマや改行が含まれる場合は、ダブルクォートで囲みます。

Excelとの違い

  • CSVはプレーンテキスト。書式・数式・複数シートは保存できない
  • ExcelのXLSX形式はZIPアーカイブ内にXMLが入った複雑な構造
  • データの受け渡しや長期保存にはCSVが適している(ソフトに依存しない)

文字化け(Shift-JIS問題)の対処

日本語CSVで最も多いトラブルが文字化けです。ExcelはデフォルトでShift-JIS(CP932)でCSVを開くため、UTF-8のCSVを開くと文字化けします。

  • BOM付きUTF-8:ファイル先頭にEF BB BFを付けることでExcelがUTF-8と認識する
  • Excelの「データ」→「テキストファイル」:インポートウィザードでエンコードを選択できる
  • Google スプレッドシート:UTF-8をそのまま開けるためトラブルが少ない

プログラムからの読み込み

  • Pythonimport csvの標準ライブラリで簡単に処理可能
  • JavaScript(Node.js)csv-parseライブラリが定番
  • SQLLOAD DATA INFILE(MySQL)やCOPY(PostgreSQL)でDBに直接インポート