CSV

CSV (データ形式)

[12] CSV は、の区切りに改行内のの区切りに , を使ったテキストファイルを表すデータ形式です。

[17] 単純で古くから広く使われていた形式なので、実装ごとに様々なバリエーションがあります。 現在に至るまで広く共通して採用されている仕様は存在していません。

仕様書

[1] CSV の書式が RFC 4180 >>24 になりました。

[22] しかしいくつかある CSV のバリエーションの一つでしかなく、 世の中の CSV のすべてをカバーすることを目的にしたものでは無さそうで、 実際カバーできていません。

TSV との関係

[18] , のかわりに TAB を使った TSV もよく使われています。 それ以外の記号が使われることもあります。これらも広義の CSV として扱われることもしばしばあります。

バリエーション

[7] Excel は UTF-8 CSV 読めない。 UTF-16LE BOM つきなら読める。ただし明示的に , 区切りと指定しないと認識しない。

[27] RFC 4180ABNF 構文で ASCII文字しか認めていません。 charset 引数は規定していますが、特別な解釈は何も定義されていませんから、 charset 引数に関わらず、結局使えるのは ASCII文字だけです。

[28] RFC 4180 は2005年出版で、どう考えても現実とは程遠い規定です。 IETFファンタジー世界か何かの標準化団体なのでしょうか。

[31] \エスケープに用いるバリエーションもありますが、 あまり普及していません >>30。一方で、 \円記号として使われることもあります。

[32] 最後に END だけのを置いて、データの末尾を示すことがあります。 数に関わらず、 , は使いません。

データの解釈

[33] CSV からのデータを取り出したとしても、 その解釈はまちまちです。

[34] 先頭行が見出しと解釈されるべきもののこともあれば、 そうでないこともあります。 見出しや、その他補足情報などで数行使うこともあります。

[35] 合計額等のまとめの行や注記事項などで終わりの数行を使うこともあります。

[36] 複数の行のまとまりが1つの CSV に含まれる場合、 まとまりの間に空行を置いたり、見出しや説明などをその間に挟んだりします。

MIME型

[21] 媒体型名は text/csv です。

引数

[2]

charsetIETF charsetUS-ASCIIcharsetIETF 情報提供RFC 4180
headerpresent / absent(自動)見出し行の有無IETF 情報提供RFC 4180

素片識別子

[25] 素片識別子RFC 7111 >>16 で規定されています。

[26] ほとんど使われておらず、実装もあまりありません。

関連

[23] CVS と綴りが似ていてたまに混乱します。

歴史

素片識別子

メモ

[3] Comma-Separated Values - Wikipedia ( ( 版)) <http://ja.wikipedia.org/wiki/Comma-Separated_Values>

[6] XForms 2.0 - W3C XForms Group Wiki (Public) ( ( 版)) <http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0#External_CSV_values>

[8] Model for Tabular Data and Metadata on the Web ( ( 版)) <http://www.w3.org/TR/2014/WD-tabular-data-model-20140327/>

[9] mhausenblas/addrable ( ( 版)) <https://github.com/mhausenblas/addrable>

[10] SPARQL 1.1 Query Results CSV and TSV Formats ( ( 版)) <http://www.w3.org/TR/2013/REC-sparql11-results-csv-tsv-20130321/#general-comments>

[19] Model for Tabular Data and Metadata on the Web ( 版) <http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/>

This definition of CSV used in this document is based on IETF's [RFC4180] which is an Informational RFC. The working group's expectation is that future suggestions to refine RFC 4180 will be relayed to the IETF (e.g. around encoding and line endings) and contribute to its discussions about moving CSV to the Standards track.

[20] Model for Tabular Data and Metadata on the Web ( 版) <http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/#h-parsing>

This section describes an algorithm for parsing formats that do not adhere to the constraints described in section 7. Best Practice CSV, as well as those that do, and extracting embedded metadata.

[29] Comma-Separated Values - Wikipedia ( 版) <https://ja.wikipedia.org/wiki/Comma-Separated_Values>

類似したフォーマットとして、タブ区切りされた tab-separated values (TSV)や、半角スペース区切りされた space-separated values (SSV) などがあり、これらをまとめて character-separated values (CSV)、delimiter-separated values とも呼ばれることも多い。

[30] CSVファイルフォーマットの解説:CodeZine(コードジン) ( 版) <https://codezine.jp/article/detail/2364>

[37] 1048535 – Cross-origin info leak: [[get]] calls on global expose text (or CSV) sniffed as JS () <https://bugzilla.mozilla.org/show_bug.cgi?id=1048535>

[38] REST API ( ()) <http://quasar-analytics.org/docs/restapi/>

text/csv Comma-separated results. See Note below.

Note: The formatting of CSV output can be controlled with an extended media type with parameters for columnDelimeter, quoteChar and escapeChar. For example:

Accept: text/csv; columnDelimiter="|"&rowDelimiter=";"&quoteChar="'"&escapeChar="\".

[39] Block additional "script" MIME types (evilpie著, ) <https://github.com/whatwg/fetch/commit/2e85ceffe027fe97d56184c8a4fe6f11b5780193>

[40] またすこし研究者の皆様へ | 衆議院議員 河野太郎公式サイト () <http://www.taro.org/2016/11/%e3%81%be%e3%81%9f%e3%81%99%e3%81%93%e3%81%97%e7%a0%94%e7%a9%b6%e8%80%85%e3%81%ae%e7%9a%86%e6%a7%98%e3%81%b8.php>

1. CSVを取得するまでに、いくつもの段階を踏まねばならず、一つのデータをダウンロードするのに大変な労力がかかる

2. 拡張子は確かにCSVだが、ファイルの中身はCSV形式ではなく、自動処理に適さない(具体例は3.4.)

3. 統計名などの表の値の意味をあらわすカラム名(=ヘッダー)ではない情報が先頭に付与されている

4. ヘッダー相当のデータが複数存在する

5. ヘッダー相当のデータに抜けが存在する

6. 数値が「”119,879.2″」のように、, を打たれたままになっている

7. 期の指定が「”1994000103″」のように、意味不明な数値な点、「1994-01-01 00:00:00」以上、「1994-04-01 00:00:00」未満の期間として記述するのが好ましい

8. 同じく日本語の期の指定が「”1994年1~3月期”」のように書かれており、7. と重複する情報となっているように思える、

9. CSV的に数値を “” で囲む表現は許容されるが、自動処理に当たっては、数値は “” で囲む表現をしない方がより良い

10. 全くの空白が続くデータの系列が存在している

[41] Excel で UTF‐8 の CSV を作成したい - マイクロソフト コミュニティ ( ()) <https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother/excel-%E3%81%A7-utf8-%E3%81%AE-csv/25d8bea2-f20c-4feb-9216-e06cb3bf0757>

手元の PC で確認したところ、Excel 2010、2013 で [名前を付けて保存] > [ファイルの種類 : CSV (カンマ区切り) (*.csv)] で保存する時に、文字コードを選択することは出来ないようです。

そのため、Excel の通常の操作だけで、文字コードが UTF-8 の CSV ファイルを作成するのは難しいかもしれません。

[42] Windows 版 Excel 2016 の新機能 - Excel ( ()) <https://support.office.com/ja-jp/article/Windows-%e7%89%88-Excel-2016-%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd-5fdb9208-ff33-45b6-9e08-1f5cdb3a6c73?ui=ja-JP&rs=ja-JP&ad=JP>

2016 年 10 月の更新プログラム

これについては、「Excel User Voice forum」 (Excel に関するユーザーの声フォーラム) でご要望がありました。UTF-8 文字エンコードを使用する CSV ファイルを開いて保存することができるようになりました。[ファイル][名前を付けて保存][参照] の順に進みます。次に、[ファイルの種類] メニューをクリックすると、[CSV UTF-8 (コンマ区切り)] の新しいオプションが表示されます。

[4] 公共料金その他で CSVダウンロードできるところは HTMLUTF-8 でも CSV だけシフトJISのところが未だに多いようですね。