【注意】 この記事は過去に別サイトで執筆したものを再掲載したものです。 内容が古くなっていて現在では適用できない場合や、もっと良い方法が出来ている場合があります。 |
古くから使われているデータ形式。
値をカンマと改行で、行と列の区切る。
シンプルなので実装しやすい一方で、ソフトによって微妙に解釈が違っていることも。
新規開発でcsv対応するのであれば、RFC4180という規約に従うと良い。
基本ルール
- 各レコードの区切りは改行(CR+LF)。ただし、データの最後のレコードは無くても良い。
- ファイルの先頭の行にヘッダー情報があっても良い。(ヘッダー情報がある時はMIMEタイプで明示するべき)
- ヘッダーと各レコードは、カンマで区切られた1つ以上のフィールドを持つ。フィールド数はファイル内で同一であるべき。
- 空白はフィールドの一部としてみなす。勝手にトリムしたりしてはいけない。
- 最後のフィールドはカンマで終わってはいけない。
- 各フィールドはダブルコーテーションで囲っても、囲わなくてもどちらでも良い。ただし、囲まない場合はフィールドにダブルコーテーションを含んではいけない。
- 改行(CR+LF)やカンマ、ダブルコーテーションを含むフィールドは、ダブルコーテーションで囲む。
- フィールド内のダブルコーテーションは、ダブルコーテーションを2つ連続で記述することで表現する。
参考
Common Format and MIME Type for Comma-Separated Values (CSV) Files
https://www.ietf.org/rfc/rfc4180.txt
CSVファイルの一般的書式 (RFC4180 日本語訳)
http://www.kasai.fm/wiki/rfc4180jp