CSVファイルの形式は、RFC4180を基に以下の仕様とします。
レコードについて
各レコードは改行「CRLF」で区切ります。(「CR」、「LF」のみの改行は動作保証しません)
ファイル末尾には改行を指定してください。
レコード内の各フィールドはカンマ「,」で区切ります。(カンマはASCII(1byte文字))
形式 | レコード | ||
---|---|---|---|
aaa,bbb,ccc | aaa | bbb | ccc |
カンマが連続した場合、および、改行の前にカンマがある場合は、カンマの次に空データがあるものとします。
形式 | レコード | ||
---|---|---|---|
aaa,,ccc | aaa | ccc | |
aaa,bbb, | aaa | bbb |
ヘッダーは指定できません。
形式 | レコード | ||
---|---|---|---|
field1 | field2 | field 3 | |
aaa,bbb,ccc | aaa | bbb | ccc |
ダブルクォーテーションについて
改行、ダブルクォーテーション、カンマを含むフィールドは、ダブルクォーテーションで囲みます。
形式 | レコード | ||
---|---|---|---|
“aaa”,”bb | aaa | bb | ccc |
“aaa”,”bb,b”,”ccc” | aaa | bb,b | ccc |
ダブルクォーテーションで囲まれているフィールドでダブルクォーテーションを使用する場合は、ダブルクォーテーションでエスケープします。
形式 | レコード | ||
---|---|---|---|
“aaa”,”bb””b”,”ccc” | aaa | bb”b | ccc |
注意
以下の場合はエラーとなります。
区切り(カンマ)の前後に空白、タブなどがある。
空白、タブなどを入れた場合、それらも1文字として認識するため、パラメタエラーの原因となります。
ダブルクォーテーションで囲まれているフィールドの前後に空白がある。
“zzz “, “yyy “, “ xxx “ |
フィールド数が異なる。
aaa,bbb |
ダブルクォーテーションで囲まれているフィールドと囲まれていないフィールドが混在する。
aaa,”bbb”,ccc |
ダブルクォーテーションのエスケープが崩れている。
“aaa”,”bb”””b”,”ccc” |
ダブルクォーテーションで全体を囲んでいる。
“aaa,bbb,ccc” |