この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Comma-Separated Values"
Comma-Separated Values拡張子.csv
MIMEタイプtext/csv
タイプコード'TEXT'
国際標準.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC 4180
comma-separated values(略称:CSV)は、テキストデータをいくつかのフィールド(項目)に分け、区切り文字であるカンマ「,」で区切ったデータ形式。拡張子は .csv、MIMEタイプは text/csv。
「comma-separated variables」とも言う。日本語では広く普及した訳語はないが、「カンマ区切り」「コンマ区切り」などとも呼ばれる。Microsoft Excelの日本語版では「CSV (カンマ区切り)」としている。 データ交換用のデファクトスタンダードとして、古くから多くの表計算ソフトやデータベースソフトで使われている。CSV形式の細部の実装はソフトウェアによって異なるため(例えば項目を単一引用符
概要
類似したフォーマットとして、タブで区切られた tab-separated values (TSV) や、欧文間隔 (いわゆる半角スペース) で区切られた space-separated values (SSV) などがあり、これらをまとめて character-separated values (CSV)[1] や delimiter-separated values (DSV) などと呼ぶことも多い。実際に、カンマ以外の文字で区切ったデータを「CSVファイル」として保存するソフトウェアもある。例えばフランス・ドイツ・イタリアなどのヨーロッパ諸国では、区切り文字にカンマではなくセミコロン(;)を使う慣習がある。これは小数点記号にピリオドではなくカンマを用いる文化であることも関与している。
2005年10月、それまでの各ソフトウェアにおけるCSVの実装を追認する形で、RFC 4180 で Informational(IESGの外部で決定された有用な情報の提供)として仕様が成文化された。しかし実際のソフトウェア側の実装はRFCに準拠していないことが多い。 RFC 4180
仕様
ファイルは1つ以上のレコードからなる。レコードは改行(?(キャリッジリターン文字)?(ラインフィード文字)、U+000D U+000A)で区切られる。最後のレコードの後には改行はあってもなくてもいい。(?(キャリッジリターン文字)はキャリッジリターン文字を意味し、?(ラインフィード文字)はラインフィード文字を意味する。)
レコードは1つ以上の同じ個数のフィールドからなる。フィールドはコンマ「,」(U+002C) で区切られる。最後のフィールドの後にはコンマは付けない。
日本国,(コンマ)東京都,(コンマ)127767944?(キャリッジリターン文字)?(ラインフィード文字)
アメリカ合衆国,(コンマ)ワシントン特別区,(コンマ)300007997?(キャリッジリターン文字)?(ラインフィード文字)
なお、最後のフィールドの後にはコンマはないので、もしレコードがコンマで終わっているように見えれば、実際はその後に空文字列(長さ0の文字列)からなるフィールドがある。次のレコードは、「日本国」「東京都」「」(長さ0の文字列)の3つのフィールドからなる。
日本国,(コンマ)東京都,(コンマ)?(キャリッジリターン文字)?(ラインフィード文字)
ファイルの先頭には、オプションとして、通常のレコードと同一の書式の「ヘッダ行」があってもいい。ヘッダ行は、他のレコードと同じ個数のフィールドを持ち、フィールドの名称が書かれている。
国,(コンマ)政治的な中心がある地域,(コンマ)人口(2006)?(キャリッジリターン文字)?(ラインフィード文字)
日本国,(コンマ)東京都,(コンマ)127767944?(キャリッジリターン文字)?(ラインフィード文字)
アメリカ合衆国,(コンマ)ワシントン特別区,(コンマ)300007997?(キャリッジリターン文字)?(ラインフィード文字)
フィールドは、ダブルクォート「"」(U+0022) で囲んでも囲まなくてもよい。次の3つのレコードは、(CSVの文字列としては)同じ内容である。(ただし、RFCはフィールドの解釈までは規定していない。一部のソフトウェアはダブルクォートで囲まれているかどうかで解釈を変える)
日本国,(コンマ)東京都,(コンマ)127767944?(キャリッジリターン文字)?(ラインフィード文字)
"(ダブルクオート)日本国"(ダブルクオート),(コンマ)"(ダブルクオート)東京都"(ダブルクオート),(コンマ)"(ダブルクオート)127767944"(ダブルクオート)?(キャリッジリターン文字)?(ラインフィード文字)
"(ダブルクオート)日本国"(ダブルクオート),(コンマ)"(ダブルクオート)東京都"(ダブルクオート),(コンマ)127767944?(キャリッジリターン文字)?(ラインフィード文字)
フィールドがコンマ、ダブルクォート、改行を含む場合は、かならずダブルクォートで囲む。また、フィールドに含まれるダブルクォートは2つ並べてエスケープする。次のレコードの内容は、「日本?(キャリッジリターン文字)?(ラインフィード文字)国」「"(ダブルクオート)東京都"(ダブルクオート)」「127,767,944」である。なお、ここでいう「コンマ」「ダブルクォート」はU+002CとU+0022のことで、他のもの(たとえば全角コンマ)は関係ない。
"(ダブルクオート)日本?(キャリッジリターン文字)?(ラインフィード文字) コンピュータ内部において、データベース内のテーブルや表計算ソフトの表の内容は、それぞれのソフトウェアが処理可能な独自のファイルフォーマットで保存されていることがあり、そのような場合は別のソフトウェアへデータを移そうにも基本的には互換性はないため読み込むことはできない。 カンマ区切りテキストは、テキスト形式で保存されるので、テキストエディタでも閲覧や編集ができる。さらに、使用するソフトウェアが、カンマ区切りテキストの出力 (エクスポート) と、読み込みから表への生成 (インポート) に対応していれば、別製品のデータベースソフトや表計算ソフトからのデータ交換が可能となる。 しかし、「テキスト形式」や「日付形式」といった各項目に設定している属性は出力されないので、インポートする側のソフトウエアがインポートする際に設定しなくてはいけない。 Microsoft Excelに代表されるパソコンの表計算ソフトが流行して以降、非常によく利用されるようになった。大型コンピュータとのデータのやりとりでは固定長データフォーマットがよく利用される。現在では、XMLを使おうという動きもあるが、XMLの仕様は膨大であり、読み書き処理のオーバーヘッドが大きく、主流にはなっていない。 フィールドにコンマやダブルクォートが含まれている場合、エスケープされている場合でも、ソフトウェアによって解釈が異なり、区切り方が変わることがある。その結果、データが破壊されることや、データ修正の手間が生じることがある。 フィールドにコンマやダブルクォートが含まれていることは頻繁にありうるが、フィールドにタブのような制御文字が含まれていることは少ない。
国"(ダブルクオート),(コンマ)"(ダブルクオート)"(ダブルクオート)"(ダブルクオート)東京都"(ダブルクオート)"(ダブルクオート)"(ダブルクオート),(コンマ)"(ダブルクオート)127,(コンマ)767,(コンマ)944"(ダブルクオート)?(キャリッジリターン文字)?(ラインフィード文字)
背景
問題点と回避策