CSVの仕様

  備忘録
【注意】
この記事は過去に別サイトで執筆したものを再掲載したものです。
内容が古くなっていて現在では適用できない場合や、もっと良い方法が出来ている場合があります。
 

古くから使われているデータ形式。
値をカンマと改行で、行と列の区切る。
シンプルなので実装しやすい一方で、ソフトによって微妙に解釈が違っていることも。

新規開発で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

LEAVE A COMMENT