カンマ区切り値


Comma-separated_values

数値をグループに分割するために使用される記号については、数字のグループ化を参照してください
カンマ区切り値(CSV)ファイル区切られたテキストファイルの使用カンマを別の値に。ファイルの各行はデータレコードです。各レコードは、コンマで区切られた1つ以上のフィールドで構成されます。フィールド区切り文字としてのコンマの使用は、このファイル形式の名前のソースです。CSVファイルは通常、表形式のデータ(数値とテキスト)をプレーンテキストで保存します。この場合、各行には同じ数のフィールドが含まれます。
カンマ区切り値
ファイル名拡張子 .csv インターネットメディアタイプ text/csv 初回リリース
不明な情報RFC 2005年10月
フォーマットの種類
マルチプラットフォームのシリアルデータストリーム
のための容器
フィールド区切りリストとして編成されたデータベース情報
標準 RFC 4180 CSVファイル形式は完全に標準化されフィールドをコンマで区切ることが基本ですが、データ内のコンマまたは埋め込まれた改行は特別に処理する必要が一部の実装ではそのようなコンテンツを許可していませんが、他の実装ではフィールドを引用符で囲んでいます。これにより、データにコンテンツが存在する場合は、これらをエスケープする必要が
「CSV」という用語は、セミコロンなどの他のフィールド区切り文字を使用する、密接に関連するいくつかの区切り文字で区切られた形式も示します。これらには、タブ区切りの値とスペース区切りの値が含まれます。データの一部ではないことが保証されている区切り文字は、解析を大幅に簡素化します。
非カンマフィールドセパレータを使用しているにもかかわらず、代替の区切り文字で区切られたファイルには、多くの場合、.csv拡張子が付けられています。この緩い用語は、データ交換で問題を引き起こす可能性がCSVファイルを受け入れる多くのアプリケーションには、区切り文字と引用文字を選択するオプションが多くのヨーロッパのロケールでは、コンマを小数点記号として使用し、場合によってはピリオドを小数点グループ文字として使用するために、コンマの代わりにセミコロンが使用されることがよくそのため、このファイル形式のより広い定義として、文字区切り値という用語が提案されています。

コンテンツ
1 データ交換2 仕様 3 歴史
4 一般的な機能
5 ソフトウェアと行の制限
6 標準化
6.1 OKI摩擦のない表形式のデータパッケージ 6.2 インターネットW3C表形式データ標準 6.3 RFC4180標準
7 基本的なルール
8 例
9 アプリケーションのサポート
10 も参照してください
11 参考文献
12 参考文献

データ交換
CSVは、消費者、ビジネス、および科学アプリケーションで広くサポートされている一般的なデータ交換形式です。その最も一般的な用途の中には、互換性のない(多くの場合、プロプライエタリまたは文書化されていない)形式でネイティブに動作するプログラム間で表形式のデータを移動することがあります 。これは、RFC 4180(またはその他の標準)に準拠していない場合でも機能します。これは、非常に多くのプログラムがデータインポート用のCSV形式のバリエーションをサポートしているためです。
たとえば、ユーザーは、独自の形式でデータを保存するデータベースプログラムから、まったく異なる形式を使用するスプレッドシートに情報を転送する必要がある場合がほとんどのデータベースプログラムはデータをCSVとしてエクスポートでき、エクスポートされたCSVファイルはスプレッドシートプログラムによってインポートできます。

仕様
RFC  4180は、CSV形式の仕様を提案しています。ただし、実際の慣行はRFCに準拠していないことが多く、「CSV」という用語は次のようなファイルを指す場合が
あるプレーンテキストなどの文字セットを使用してASCII、様々なUnicode文字セット(例えばUTF-8)EBCDIC、またはシフトJIS、
レコードで構成され(通常、1行に1つのレコード)、
レコードが区切り文字で区切られたフィールドに分割されている場合(通常、コンマ、セミコロン、タブなどの単一の予約文字。区切り文字にオプションのスペースが含まれる場合があります)、
ここで、すべてのレコードには同じフィールドのシーケンスが
これらの一般的な制約の範囲内で、多くのバリエーションが使用されています。したがって、追加情報(RFC 4180が尊重されるかどうかなど)がないと、単に「CSV」形式であると主張されるファイルは完全には指定されません。その結果、CSVファイルをサポートする多くのアプリケーションでは、ユーザーはファイルの最初の数行をプレビューしてから、区切り文字、引用符の規則などを指定できます。特定のCSVファイルのバリエーションが、特定の受信プログラムでサポートされているものから外れる場合は、多くの場合、ファイルを手動で(つまり、テキストエディタを使用して)調べて編集したり、スクリプトやプログラムを作成して準拠した形式を作成したりすることができます。

歴史
カンマ区切り値事前日付データ形式であるパーソナルコンピュータより十年によって:IBM のFortran(Hは拡張レベル)コンパイラの下でOS / 360は、 1972年CSVをサポート(「遊離型」)のリスト指向入力/出力は、1978年に承認されたFORTRAN 77で定義されました。リスト指向の入力では、区切り文字にコンマまたはスペースを使用したため、引用符で囲まれていない文字列にコンマまたはスペースを含めることはできませんでした。
用語「カンマ区切り値」と「CSV」の略語は、1983年で使用されていたのためのマニュアルオズボーンバンドルされたエグゼクティブ・コンピューター、SuperCalcのスプレッドシートを、文書文字列が埋め込まれたカンマを含めることができますCSV引用大会が、マニュアルでは、引用符で囲まれた文字列内に引用符を埋め込むための規則は指定され
カンマ区切りの値リストは、固定列に揃えられたデータよりも入力が簡単で(たとえば、パンチカードに)、値が目的の場所から1列離れた場合に誤った結果を生成する可能性が低くなりました。
コンマ区切りファイルは、2つの異なるアーキテクチャのマシン間でデータベース情報を交換するために使用されます。CSVファイルのプレーンテキスト文字は、バイトオーダーやワードサイズなどの非互換性を大幅に回避します。ファイルは主に人間が読める形式であるため、完全なドキュメントやコミュニケーションがない場合でも、ファイルを処理する方が簡単です。
主な標準化イニシアチブ-変換「事実上、より正確とにファジー定義」デジュール一たと、2005年に
RFC 4180としてCSVを画定する、MIMEコンテンツタイプ。その後、2013年に、RFC4180の欠陥のいくつかはW3C勧告によって取り組まれました。 
2014年、IETFは、CSVドキュメントへのURIフラグメントの適用を説明するRFC7111を公開し
ました 。RFC 7111は、位置インデックスを使用してCSVドキュメントから行、列、およびセルの範囲を選択する方法を指定しています。
2015年にW3Cは、正式なセマンティクスでCSVを強化する試みとして、同じ年の12月に推奨事項として開始されたCSVメタデータ標準の推奨事項の最初のドラフトを公開しました。

一般的な機能
CSV形式は、各レコードに同じフィールドのリストがあるレコードのセットまたはシーケンスを表すのに最適です。これは、リレーショナルデータベースの単一のリレーション、または一般的なスプレッドシートのデータ(計算ではありません)に対応します。
この形式はビジネスコンピューティングの初期にまでさかのぼり、内部ワードサイズ、データ形式のニーズなどが異なるコンピューター間でデータを渡すために広く使用されています。このため、CSVファイルはすべてのコンピュータープラットフォームで共通です。
CSVは、値を区切るためにコンマを使用する区切りテキストファイルです(CSVインポート/エクスポートツールの多くの実装では、他の区切り文字を使用できます。たとえば、*の最初の行として「Sep = ^」行を使用します。 csvファイルには、原因となるExcelが期待したファイル開くようにキャレットを)「」区切りの代わりに、コンマであることを「^」。単純なCSV実装では、コンマまたは改行などの他の特殊文字を含むフィールド値が禁止されている場合がより洗練されたCSV実装では、予約文字(コンマ、二重引用符、またはあまり一般的ではないが改行など)を含む値の前後に”(二重引用符)文字を要求することで、それらを許可します。埋め込まれた二重引用符文字は、連続したペアで表すことができます。二重引用符を使用するか、二重引用符の前にバックスラッシュなどのエスケープ文字を付けます(たとえば、Sybase Centralの場合)。
CSV形式は、特定の文字セットに限定されません。これらは、ASCIIと同様にUnicode文字セット(UTF-8やUTF-16など)でも同様に機能します(ただし、CSVをサポートする特定のプログラムには独自の制限がある場合があります)。CSVファイルは通常、ある文字セットから別の文字セットへの単純な変換にも耐えることができます(ほとんどすべての独自のデータ形式とは異なります)。ただし、CSVは、使用されている文字セットを示す方法を提供しないため、個別に通信するか、受信側で決定する必要があります(可能な場合)。
複数の関係を含むデータベースは、単一のCSVファイルとしてエクスポートすることはできません。同様に、CSVは、階層データやオブジェクト指向データを自然に表すことはできません。これは、すべてのCSVレコードが同じ構造を持つことが期待されるためです。したがって、CSVが、HTML、XML、またはその他のマークアップまたはワードプロセッシングテクノロジで作成されたドキュメントに適していることはめったにありません。
さまざまな分野の統計データベースは、一般的に関係のような構造を持っていることがよくありますが、いくつかの反復可能な分野のグループがたとえば、人口統計や健康調査などの健康データベースは、通常、特定の親の子供ごとにいくつかの質問を繰り返します(おそらく、子供の最大数は固定されています)。統計分析システムには、多くの場合、そのようなデータを「ローテーション」できるユーティリティが含まれています。たとえば、5人の子に関する情報を含む「親」レコードは、それぞれが(a)1人の子に関する情報、および(b)すべての非子固有の情報のコピーを含む5つの別個のレコードに分割できます。CSVは、そのようなデータの「垂直」形式または「水平」形式のいずれかを表すことができます。
リレーショナルデータベースでは、同様の問題は、そのようなグループごとに個別のリレーションを作成し、外部キー(ID番号や親の名前など)を使用して「子」レコードを関連する「親」レコードに接続することで簡単に処理できます。XMLなどのマークアップ言語では、このようなグループは通常、親要素で囲まれ、必要に応じて繰り返されます(たとえば、単一ノード内の複数のノード)。CSVには、広く受け入れられている単一ファイルソリューションはありません。

ソフトウェアと行の制限
CSVで動作する各ソフトウェアには、CSVファイルが持つことができる行の最大数に制限が以下は、一般的なソフトウェアとその制限のリストです。
Microsoft Excel:1,048,576行の制限
Apple番号:1,000,000行の制限
Googleスプレッドシート:5,000,000セル制限(列と行の積)
OpenOfficeとLibreOffice:1,048,576行の制限
テキストエディタ(ワードパッド、テキストエディット、Vimなど):行やセルの制限なし

標準化
「CSV」という名前は、データフィールドを区切るためにコンマを使用することを示します。それにもかかわらず、「CSV」という用語は、多くの点で異なるフォーマットの大規模なファミリを指すために広く使用されています。一部の実装では、一部またはすべてのフィールドを一重引用符または二重引用符で囲むことができます。また、フィールド名のリストを含むヘッダーとして最初のレコードを予約するものも使用されている文字セットは未定義です。一部のアプリケーションでは、Unicodeの解釈を強制するためにUnicodeバイトオーダーマーク(BOM)が必要です(場合によってはUTF-8 BOM)。コンマの代わりにタブ文字を使用するファイルは、タブ区切り値の場合、より正確に「TSV」と呼ぶことができます。
その他の実装上の違いには、より一般的なフィールド区切り文字(スペースやセミコロンなど)やテキストフィールド内の改行文字の処理が含まれます。もう1つの微妙な点は、空白行の解釈です。これは、ゼロフィールドのレコード、またはゼロ長の1フィールドのレコードを書き込んだ結果でも同様に発生する可能性がしたがって、それをデコードすることはあいまいです。

OKI摩擦のない表形式のデータパッケージ
2011年に、Open Knowledge Foundation(OKF)とさまざまなパートナーがデータプロトコルワーキンググループを作成しました。このワーキンググループは、後に摩擦のないデータイニシアチブに発展しました。彼らがリリースした主なフォーマットの1つは、表形式のデータパッケージでした。表形式のデータパッケージはCSVに大きく基づいており、CSVを主要なデータ転送形式として使用し、基本的なタイプとスキーマのメタデータを追加しました(CSVには、文字列「1」と数値1を区別するためのタイプ情報がありません)。
摩擦のないデータイニシアチブは、CSVのさまざまな方言を記述するための標準のCSV方言記述形式も提供しています。たとえば、フィールド区切り文字や引用符の規則を指定します。

インターネットW3C表形式データ標準
2013年、W3Cの「CSVon the Web」ワーキンググループは、CSVまたは同様の形式を使用するWebアプリケーションの相互運用性を高めるテクノロジーの指定を開始しました。ワーキンググループは、2016年2月に作業を完了し、2016年3月に正式に閉鎖され、「表形式データ」のモデリングおよびメタデータとセマンティクスによるCSVの強化に関する一連のドキュメントとW3Cの推奨事項がリリースされました。。

RFC4180標準
2005年の技術標準RFC4180は、CSVファイル形式を形式化し、テキストベースのフィールドを処理するためのMIMEタイプ「text / csv」を定義しています。ただし、各フィールドのテキストの解釈は、アプリケーション固有です。RFC 4180標準に準拠するファイルは、CSV交換を簡素化できるため、広く移植可能である必要がその要件の中で:(CR / LF)文字で終わるMS-DOSスタイルの行(最後の行はオプション)。
オプションのヘッダーレコード(存在するかどうかを確実に検出する方法がないため、インポートするときは注意が必要です)。
各レコードには、同じ数のコンマ区切りフィールドが含まれている必要が
任意のフィールドを引用符で囲むことができます(二重引用符で囲みます)。
改行、二重引用符、またはコンマを含むフィールドは引用符で囲む必要が(そうでない場合、ファイルを正しく処理できない可能性が)
フィールドを囲むために二重引用符を使用する場合、フィールド内の二重引用符は2つの二重引用符文字で表す必要が
この形式は、CSVファイルの読み取りを要求するほとんどのプログラムで処理できます。例外がある()プログラムは引用フィールド内の改行をサポートしない可能性があり、(B)プログラムは、データと、オプションヘッダを混乱またはオプションヘッダと、第1データラインを解釈することができる(C)フィールド内の二重引用符ではないかもしれません自動的に正しく解析されます。

基本的なルール
「CSV」形式を説明する多くの非公式文書が存在します。IETF RFC 4180(上記で要約)は、IANAに登録されている「text / csv」MIMEタイプの形式を定義します。
これらおよびその他の「CSV」仕様と実装に典型的なルールは次のとおりです。
CSVは、区切られたデータ形式フィールド/列が区切らコンマ 文字と、レコード/行改行で終了しました。
CSVファイルには、特定の文字エンコード、バイトオーダー、またはラインターミネータ形式は必要ありません(一部のソフトウェアは、すべてのラインエンドのバリエーションをサポートしていません)。
レコードはラインターミネータで終了します。ただし、行ターミネータはフィールド内にデータとして埋め込むことができるため、ソフトウェアは、おそらく複数の行からレコード全体を正しくアセンブルするために、引用符で囲まれた行区切り文字(以下を参照)を認識する必要が
すべてのレコードには、同じ数のフィールドが同じ順序で含まれている必要が
フィールド内のデータは、ビットまたはバイトのシーケンスとしてではなく、文字のシーケンスとして解釈されます(RFC 2046、セクション4.1を参照)。たとえば、数値65535は、5つのASCII文字「65535」(または「0xFFFF」、「000065535.000E + 00」などの他の形式)として表すことができます。ただし、2文字ではなく単一の2進整数として扱われることを目的とした、2バイトのシーケンスとしてではありません(たとえば、11264〜11519の数字は、上位バイトとしてコンマを使用します:) 。この「プレーンテキスト」規則に従わないと、CSVファイルに正しく解釈するための十分な情報が含まれなくなり、CSVファイルは異なるコンピュータアーキテクチャ間での送信に耐えられなくなり、text / csvMIMEタイプに準拠しなくなります。ord(‘,’)*256..ord(‘,’)*256+255
隣接するフィールドは、1つのコンマで区切る必要がただし、「CSV」形式は、この区切り文字の選択によって大きく異なります。特に、コンマが小数点記号として使用されているロケールでは、代わりにセミコロン、TAB、またはその他の文字が使用されます。1997年、フォード、E350
次のルールと例で指定されているように、任意のフィールドを引用符で囲む(つまり、二重引用符で囲む)ことができますが、一部のフィールドは引用符で囲む必要が「1997」、「フォード」、「E350」
カンマまたは二重引用符が埋め込まれたフィールドは引用符で囲む必要が 1997年、フォード、E350、「超豪華トラック」
埋め込まれた各二重引用符は、二重引用符のペアで表す必要が 1997年、フォード、E350、「スーパー、「豪華な」「トラック」
改行が埋め込まれているフィールドは引用符で囲む必要があります(ただし、多くのCSV実装は改行が埋め込まれていません)。 1997年、フォード、E350、「今すぐ入手してください彼らは速く進んでいます」
一部のCSV実装では、先頭と末尾のスペースとタブはトリミングされます(無視されます)。このようなトリミングはRFC4180で禁止されており、「スペースはフィールドの一部と見なされるため、無視してはなりません」と記載されています。1997年、フォード、E350と同じではありません1997年、フォード、E350
RFC 4180によると、フィールド内の引用符の外側のスペースは許可されただし、RFCには、「スペースはフィールドの一部と見なされるため、無視してはならない」とも記載されています。また、「実装者は、CSVファイルを処理するときに、「自分の行動を保守的にし、他の人から受け入れることを寛大に」(RFC 793、セクション2.10)する必要が」1997年、「フォード」、E350
先頭または末尾のスペースを削除するCSV実装では、意味のあるデータなどのスペースを含むフィールドを引用符で囲む必要が 1997年、フォード、E350、「超豪華トラック」
二重引用符の処理は、フィールドが二重引用符で始まる場合にのみ適用する必要がただし、RFC 4180では、引用符で囲まれていないフィールドに二重引用符を使用することはできません。ロサンゼルス、北緯34度03分、西経118度15分ニューヨーク市、北緯40度42分46秒、西経74度00分21秒パリ、48°51′24″ N、2°21′03″ E
最初のレコードは、各フィールドに列名を含む「ヘッダー」である可能性があります(ファイルがこれを行うかどうかを判断する信頼できる方法はありませんが、文字、数字、およびそのような列名にはアンダースコアが付いています)。 年、メーカー、モデル1997年、フォード、E3502000年、マーキュリー、クーガー

例 年 作る
モデル
説明
価格 1997年 フォード E350 ac、abs、moon3000.00 1999年
シボレー
ベンチャー「拡張版」4900.00 1999年
シボレー
ベンチャー「拡張版、非常に大きい」5000.00 1996年
ジープ
グランドチェロキー
売らなければならない!空気、月の屋根、ロード 4799.00 上記のデータテーブルは、CSV形式で次のように表すことができます。
年、メーカー、モデル、説明、価格1997、Ford、E350、 “ac、abs、moon”、3000.001999、Chevy、 “Venture” “Extended Edition” “”、 “”、4900.001999、Chevy、 “Venture” “Extended Edition、Very Large” “” ,, 5000.001996年、ジープ、グランドチェロキー、「売らなければならない!空気、月の屋根、ロード済み」、4799.00
USA / UK CSVファイルの例(小数点はピリオド/ピリオドで、値の区切り文字はコンマです):
年、メーカー、モデル、長さ1997年、フォード、E350、2.352000年、マーキュリー、クーガー、2.38
類似のヨーロッパのCSV / DSVファイルの例(小数点はコンマ、値の区切り文字はセミコロン):
年;製造;モデル;長さ1997;フォード; E350; 2,352000;マーキュリー;クーガー; 2,38
後者の形式はRFC4180に準拠しコンプライアンスは、区切り文字としてセミコロンの代わりにコンマを使用し、小数点を表すための国際表記または小数点のあるすべての数値を引用する方法のいずれかによって達成できます。

アプリケーションのサポート
CSVファイル形式は、Apple Numbers、LibreOffice Calc、Apache OpenOffice Calcなど、ほぼすべてのスプレッドシートとデータベース管理システムでサポートされています。Microsoft ExcelもCSVをサポートしていますが、他のスプレッドシートソフトウェアと比較すると制限があります(たとえば、2019年以降、Excelは一般的に使用されるUTF-8文字エンコードでCSVファイルをエクスポートできません)。
CSV形式は、多くのプログラミング言語で利用可能なライブラリでサポートされています。ほとんどの場合、フィールド区切り文字、小数点記号、文字エンコード、引用規則、日付形式などを指定する方法が提供されます。
Emacsのエディタは、CSV-NAVモードを使用してCSVファイルを操作することができます。
Unixスタイルのシステムの多くのユーティリティプログラム(cut、paste、join、sort、uniq、awkなど)は、コンマ区切り文字でファイルを分割できるため、単純なCSVファイルを処理できます。ただし、このメソッドは、引用符で囲まれた文字列内のコンマを正しく処理しません。

も参照してください
タブ区切りの値
データシリアル化形式の比較
区切り文字で区切られた値
デリミタの衝突
フラットファイルデータベース
シンプルなデータフォーマット
置換文字、ヌル文字、非表示のコンマU + 2063

参考文献
^ Shafranovich、Y。。CSVファイルの一般的な形式とMIMEタイプ。IETF。p。1.土井:10.17487 / RFC4180。RFC 4180。
^ Shafranovich(2005)は、「このRFCは、コンマ区切り値(CSV)ファイルの形式を文書化し、RFC2048に従ってCSVの「text / csv」MIMEタイプを正式に登録します」と述べています。
^ 「CSV-カンマ区切り値」。
^ 「CSVファイル」。
^ 「カンマ区切り値(CSV)標準ファイル形式」。Edoceo、Inc 。
^ OSおよびVM / 370一般情報のCMSコンポーネント用のIBMFORTRANプログラム製品(PDF)(初版)、1972年7月、p。17、GC28-6884-0取得し、年2月5、 2016は、前任者FORTRAN IV GおよびHプロセッサに精通しているユーザーの場合、これらは主要な新しい言語機能です
^ 「リスト指向I / O」、Fortran 77言語リファレンス、Oracle
^ 「SuperCalc²、IBM用スプレッドシートパッケージ、CP / M」。
^ 「カンマ区切り値形式のファイル構造」。
^ 「CSV、カンマ区切り値(RFC 4180)」。
^ RFC 4180:コンマ区切り値(CSV)ファイルの一般的な形式とMIMEタイプ。土井:10.17487 / RFC4180。RFC 4180 。
^ CSVでスコープされ、 RFC4180のいくつかの欠陥を埋める最初のW3C勧告であるsparql11-results-csv-tsvを参照して
^ RFC 7111:text / csvメディアタイプのURIフラグメント識別子。土井:10.17487 / RFC7111。RFC 7111 。
^ 「Web上の表形式のデータとメタデータのモデル–W3C勧告2015年12月17日」。
^ * Creativyst(2010)、方法:コンマ区切り値(CSV)ファイル形式、creativyst.com 、
^ 「CSVと行の制限を理解する」。
^ 「表形式のデータパッケージ」。摩擦のないデータ仕様。
^ 「CSV方言」。摩擦のないデータ仕様。
^ 「WebワーキンググループのCSV」。W3C CSVWG。2013 。
^ Webリポジトリ上のCSV(GitHub上)
^ Web上の表形式のデータとメタデータのモデル(W3C勧告)
^ Shafranovich(2005)は、「ヘッダーと各レコード内に、コンマで区切られた1つ以上のフィールドが存在する場合があります」と述べています。
^ 「EmacsWiki:CsvNav」。

参考文献
「IBMDB2管理ガイド-LOAD、IMPORT、およびEXPORTファイル形式」。IBM。
(データ転送用の区切りASCII(.DEL)(コンマおよびセミコロンで区切られたものを含む)および非区切りASCII(.ASC)ファイルのファイル記述が)
 title=
Comma-separated_values&oldid=1060298461″