“CSV”とは?~だいたい伝わるIT用語解説
ウェブシステムに限らず、システムを使っていると「CSVダウンロード」という機能をよく見かけます。またそうして取得した「~.csv」となっている拡張子のファイルも扱うことがあるかと思います。
なんとなく使う機会も多い、この”CSV”とは何なのか、解説します。
“CSV”はデータ形式のこと
“CSV”とは「Comma Separated Value」の略で、「カンマで区切られたデータ」という意味です。
name,age,point
James,25,300
Smith,22,285
Kentaro,19,260
例えば上記1行目は、”name”と”age”と”point”がカンマ(,)で区切られています。
改行を挟むことで、複数のレコードを表現することができ、2行目以降も同様にカンマでデータが区切られています。
なお、パソコンなどでCSV形式のファイルを開こうとするとExcelが起動する(拡張子のcsvがExcelに関連付けられている)ことが多いため、CSVファイルがExcelのデータだと思っている人も多いかもしれません。
しかしCSVデータ自体はプレーンテキストなので、メモ帳アプリなどテキストを編集可能なアプリケーションで開くことができます。
もちろんExcelやメモ帳でなくとも、CSV形式に対応したエディターで開くことができます。
CSV形式のルール
- 1行(レコードといいます)のなかにカンマで区切られた複数のデータがある
- 改行コードでレコードが区切られている
- (必ずではないものの)各レコードが同じ項目数で定義されている
となっているテキストデータであれば、CSVデータといってよいでしょう。
データ自体が単純な構造になっているため作成・加工しやすいのが特徴で、その特徴ゆえに様々なシステムでデータを入出力するために使用されるフォーマットになっています。
なお、日本だと大抵は文字コードが”Shift-JIS”で扱われます。
カンマを含むデータの場合
さて、カンマで区切るのがCSVデータですが、例えばデータの中身自体にカンマがある場合はどうでしょう?
"line1","I like musics, sports, and movies."
"line2","Me too."
そんな時は、データ項目をダブルクォート(”)で囲むことで、一つのデータ項目であることを示します。
上記の場合、「I like ~movies.」で一つのデータになります。途中のカンマではデータを区切りません。
ダブルクオーテーションを含むデータの場合
では更に、データの中身にダブルクォートがある場合は、どうしたらよいでしょうか?
"line1","I say ""Hello"" to him."
"line2","That's good."
データ内のダブルクォートは、ダブルクォートを2重にすることでエスケープします。
上記の場合、1レコード目2つ目のデータは、「I say “Hello” to him.」と解釈されます。
CSVデータの活用
CSVは複雑な構造がなく、またデータ作成・加工も比較的容易でファイルサイズも比較的小さくすることができるため、(前述のように)異なるシステム間でのデータのやり取りによく使用されています。
冒頭の「CSVダウンロード」は、システムからデータを取り出すのに使用されるわけです。一方、新しいシステムに「CSVアップロード(取込)」といった機能があれば、CSVファイルでデータを登録することもできます。
ただし、CSV形式のルールは先述したものの、項目定義はもちろんですが、ヘッダー行の有無だったりダブルクォートの有無だったり、システム間でのローカルルールで取り決めされていることも多いです。そのため、実際に使用する場合は使用先での定義を確認するようにしましょう。
国際標準(RFC4180)があるので、興味があれば以下のリンクからPDFを読んでみましょう。
データ連携はCSVだけじゃない
なお、CSVデータのほかにもシステム間でのデータ連携にはいろいろな方法があります。
固定長データやCSVによく似た”TSV”なんかもありますし、”XML”や”json”などのように複雑なデータ構造を表現できるデータ形式もあります。
とはいえ、中身はあくまでもテキストデータだったりするので、あまり怖がらずに内容を確認してみましょう。