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をそのまま開けるためトラブルが少ない
プログラムからの読み込み
- Python:
import csvの標準ライブラリで簡単に処理可能 - JavaScript(Node.js):
csv-parseライブラリが定番 - SQL:
LOAD DATA INFILE(MySQL)やCOPY(PostgreSQL)でDBに直接インポート