CSVテーブル (.csv)

RFC 標準

Comma-Separated Values (CSV) は、表形式データのための広く使われているプレーンテキスト形式であり、各行がデータレコードを表し、フィールドは区切り文字で分離されます。

XLSX を CSV に変換

無料のブラウザ内 XLSX から CSV へのコンバーター。お使いのデバイスでファイルを即座に変換します。

CSVをオンラインで圧縮

プライベート - ファイルがデバイスの外に出ることはありません

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してCSVファイルを識別します:

ファイルを選択するか、ここにドロップしてください

プライベート - ファイルがデバイスの外に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してCSVファイルを識別します:

16進数シグネチャ(オフセット0):

固定シグネチャなし

ASCII表現: テキストバイト。文字コードは異なる場合があります

標準化: RFC 4180 / IETF

技術仕様

コンテナアーキテクチャ表形式のデータ行と列を表す区切り文字付きフラットテキストファイル
圧縮Gzip / Deflate により、繰り返しのある表形式レコードで 85% ~ 95% の圧縮を実現
バイトエンディアンUTF-8 テキストストリーム (Excelで使用されるオプションの UTF-8 BOM EF BB BF を含む)
色空間該当なし
チャンネルと構造CRLFで区切られた行レコードと、コンマで区切られた列
最大寸法無制限。ファイルをメモリ全体に読み込まずにギガバイト単位でストリーミング可能
透過性該当なし
ストリーミングとプログレッシブすべてのデータパイプラインでサポートされているネイティブな行単位のストリーム処理

技術比較表:CSVと競合製品

技術属性CSV (現在)Excel (XLSX)ParquetJSON
ファイル形式プレーンテキストのフラットテーブルZIP圧縮されたXMLスプレッドシートバイナリ列指向ストレージ階層型テキスト
複数シートなし(単一のフラットテーブルのみ)あり(複数のブックとシート)パーティションベースのストレージネストされた配列とオブジェクト
データ型型付けされていない生テキスト型付きセル、数式、書式設定厳密なバイナリ列型プリミティブ型(文字列、数値、真偽値)
ビッグデータ分析低速(すべての行を線形に読み取る必要がある)ビッグデータには不向き超高速(列プルーニングと述語プッシュダウン)中程度

一般的な破損モードと16進数リカバリガイド

列が右にズレる、または行数が一致しない。

根本原因: 二重引用符で囲まれていない、エスケープされていないコンマが含まれているテキストフィールドがある。

復旧: RFC 4180 では、コンマを含むフィールドを二重引用符で囲むことが義務付けられています(例: "Smith, John")。

Excelでアクセント付き文字が奇妙な記号(é の代わりに é のような文字化け)として表示される。

根本原因: ExcelがレガシーなWindows ANSI/CP1252文字エンコーディングを前提としてUTF-8のCSVを開いたため。

復旧: ファイルの先頭に 3 バイトの UTF-8 バイトオーダーマーク (0xEF 0xBB 0xBF) を付加する。

セキュリティ分析とパーサー攻撃ベクトル

CSVファイルはExcelやGoogleスプレッドシートなどの表計算ソフトウェアで直接開かれるため、ユーザーが数式インジェクション(CSVインジェクション)攻撃にさらされます。

既知の攻撃ベクター

  • 数式インジェクション: '=', '+', '-', '@' で始まるセルが、スプレッドシートのマクロや DDE コマンドを実行する(例: '=cmd|' /C calc'!A0')。
  • クリック時に機密性の高いセルデータをリモートの攻撃者サーバーに送信する HYPERLINK() 数式によるデータ流出。

防御的ベストプラクティス: ユーザーデータをCSVにエクスポートする際、'='、'+'、'-'、'@' で始まるセルの先頭にシングルクォート(')またはタブを追加することで、Excelでのプレーンテキストとして表示を強制します。

歴史的背景とマイルストーン

2015W3C Model for Tabular Data and Metadata on the Web が、JSON-LDメタデータ記述子を持つ CSV on the Web (CSVW) を標準化。
2005IETFが RFC 4180 を発行し、CSVファイルの正式な仕様を確立。
1972IBM Fortran (H Extended) コンパイラがコンマ区切りの入出力を実装。

主なメリット

  • 非常にシンプルな形式で、どのテキストエディタでも読み取れ、すべてのデータベースや表計算ソフトにインポートできます。
  • 完全なインメモリDOMを構築することなく、非常に高速な行単位のストリーミング。
  • 最小限のオーバーヘッド:冗長なタグ構文やスキーマ定義がない。

技術的な制限とデメリット

  • 標準のデータ型がない: 数値、日付、真偽値、テキストはすべて生文字列として保存される。
  • 複数のシート、セルの書式設定、数式、メタデータのサポートがない。
  • 区切り文字の競合(テキスト内のコンマ、ヨーロッパのロケールでの小数点のコンマ)により、頻繁にパースエラーが発生する。

興味深い技術トリビア

  • コンマを小数点として使用する多くのヨーロッパ諸国では、CSVの区切り文字としてコンマの代わりにセミコロン(;)が使用されます。
  • Microsoft Excelでは、非ASCIIのアクセント付き文字を正しく表示するために、歴史的にUTF-8 BOM(0xEF 0xBB 0xBF)が必要でした。
  • 英国の国民保健サービス(NHS)は、2020年に新型コロナウイルス感染症(COVID-19)の接触者追跡記録約16,000件を紛失したことで有名です。これは、行数の上限が65,536行に制限されている古いExcelのスプレッドシート形式にデータがインポートされたためです。

よくある技術的な質問

RFC 4180 とは何ですか?

RFC 4180 は、CSV に関する公式の IETF 標準です。コンマ、改行、または二重引用符を含むフィールドは二重引用符で囲む必要があり、内部の引用符は二重にすることでエスケープする必要がある("")と規定しています。

なぜCSVファイルをExcelで開くと文字化けするのですか?

古いバージョンの Microsoft Excel では、CSV ファイルを直接開く際に UTF-8 ではなくローカルの Windows コードページ(Windows-1252 など)がデフォルトで使用されます。ファイルの先頭に UTF-8 BOM(Byte Order Mark)を追加することで、Excel に UTF-8 を正しくデコードさせることができます。

CSVインジェクション(数式インジェクション)とは何ですか?

CSVインジェクションは、数式のトリガー('=', '+', '-', '@')を含む信頼されていないユーザー入力がスプレッドシートファイルにエクスポートされたときに発生します。Excelなどのソフトウェアで開くと、スプレッドシートが自動的に数式や動的データ交換(DDE)コマンドを実行し、システムコマンドを実行したりデータを流出させたりする可能性があります。

関連するCSV変換ペア

XLSX~CSV

Excel シートを CSV テーブルに変換することで、生の表データを汎用的なテキスト形式として抽出し、ソフトウェア間の互換性を最大限に高めます。

CSV~XLSX

シンプルなテキストベースの CSV ファイルを高機能な XLSX スプレッドシートに変換することで、高度なデータのスタイリング、数式、複数シートの利用が可能になります。

CSV~SQLITE

フラットなテキストファイルを構造化されたリレーショナルデータベースに変換することで、高速なクエリの実行と複雑なデータリレーションの管理が可能になります。

SQL~CSV

リレーショナルデータベースのバックアップスクリプトをフラットな表形式のスプレッドシートに変換し、簡単なデータ分析やレポート作成を可能にします。

HDF5~CSV

階層構造を持つHDF5データセットをフラットなテレメトリCSVファイルに変換することで、複雑な多次元の科学記録をスプレッドシート解析用のシンプルな行と列に変換できます。

NETCDF~CSV

多次元のNetCDF科学グリッドをフラットなテレメトリCSVファイルに変換することで、複雑な気候・海洋データを基本的な表計算ソフトで読み取れるようにします。

VCF~CSV

vCard ファイルを連絡先 CSV に変換し、階層的な連絡先カードをフラットなスプレッドシートの行に変換してデータベースへのインポートを容易にします。