会計ツールから売上レポートをエクスポートして、2つの選択肢を得ました:CSVまたはXLSXとしてダウンロード。1つを選んで開いたら、何かがおかしい — 数式が消えていた、アクセント文字が文字化けしていた、または日付がヨーロッパ式とアメリカ式の間で揺れていた。これがスプレッドシート形式の日常的な現実であり、XLSXとCSVの選択は見かけほど明白ではありません。
両方の形式は表形式データを保存しますが、異なる仕事のために設計されました。それぞれが何を保持し — 何を黙って捨てるか — を理解すると、デバッグ時間と多くのフラストレーションを節約できます。
CSVとは実際何か
CSVはComma-Separated Values(カンマ区切り値)の略です。1970年代のメインフレームのデータ交換にまで遡る、まだ広く使われている最も古くシンプルな表形式です。
CSVファイルは平文テキストファイルです。各行が1行で、行内では値は区切り文字 — 通常はカンマ、時にはセミコロン、タブ、パイプ — で区切られます。書式なし、数式なし、スタイルなし、複数シートの概念もありません。テキストの行と列だけです。
このシンプルさがCSVの超能力です。表形式データを扱うあらゆるツール — 50年前のCOBOLプログラムから現代のPythonスクリプトまで — がCSVを読めます。独自パーサーなし、バージョン互換性なし、ライセンスなし。テキストエディタで開けば読めます。
XLSXとは実際何か
XLSXはOffice Open XML Spreadsheet形式で、2007年にMicrosoftが古いバイナリ.xls形式を置き換えるために導入しました。Microsoft起源にもかかわらず、XLSXはオープンなISO標準(ISO/IEC 29500)であり、ほとんどの最新スプレッドシートアプリケーションがネイティブにサポートしています。XLSXファイルは単一ファイルではなく、数十のXMLドキュメントを含むZIPアーカイブです。中には次のものがあります:
- セルデータと数式
- 書式(フォント、色、罫線、数値形式)
- それぞれ独自のグリッドを持つ複数シート
- グラフ、ピボットテーブル、名前付き範囲、条件付き書式
- 埋め込み画像、さらにマクロ
.xlsxファイルを.zipに名前変更し、解凍してXMLを自分で検査できます。これによりXLSXは豊かでありながら検査可能になります。
正直な比較
| 機能 | CSV | XLSX |
|---|---|---|
| シンプルな値を保存 | ✅ | ✅ |
| 数式を保持 | ❌ | ✅ |
| 書式を保持 | ❌ | ✅ |
| 複数シート | ❌ | ✅ |
| グラフとピボットテーブル | ❌ | ✅ |
| 数値形式(通貨、日付) | ❌ (テキストのみ) | ✅ |
| 汎用互換性 | ✅ | ✅ (最新アプリ) |
| テキストエディタで読める | ✅ | ❌ (ZIPのため) |
| シンプルデータでのサイズ | 最小 | 5-10倍大きい |
| ロケール問題のリスク | 高 | 低 |
| 巨大ファイルのストリーム | ✅ | ⚠️ (まず解凍が必要) |
CSVが正解の時
次のいずれかが必要な時はCSVを使用:
- 最大互換性。 データベースへのインポート、スクリプトへの供給、ツールが不明なパートナーへの送信 — CSVはどこでも動きます。
- 巨大データセット。 100万行のCSVは綺麗にストリームします。100万行のXLSXはメモリ限界にぶつかり、Excelの厳密な上限である1シートあたり1,048,576行に達する可能性があります。
- バージョン管理。 CSVはGitで綺麗にdiffされます。XLSXはバイナリブロブとして表示されます。
- 純粋なデータ交換。 値だけが必要で、受信システムが独自の書式を適用する場合。
XLSXが正解の時
次のいずれかが重要な場合はXLSXに切り替え:
- 数式を生かす必要。
=SUM(B2:B30)のある予算がCSVでは静的な数値になります。 - 複数シート。 月ごとに1シートある月次トラッカーがCSVでは1つのシートに崩壊します。
- 書式が意味を持つ。 太字の合計、色分けされたカテゴリ、通貨記号、パーセント形式 — すべてCSVで失われます。
- 型安全な日付と数値。 XLSXは
2026-05-02を日付型として保存。CSVはテキストとして保存し、次のツールが解釈方法を決めます(しばしば誤って)。 - 受信者が人間。 人間はXLSXファイルを読み、プログラムはCSVを読みます。
全員を捕まえる罠
いくつかの特定の問題が繰り返しユーザーを噛みます:
ロケールのカンマの罠 フランス語、ドイツ語、その他多くのロケールでは、小数点区切りはカンマであり、ピリオドではありません。つまり1,5は1.5を意味します。しかしCSVはカンマをフィールド区切りとして使用します。それらのロケールのExcelはCSVをセミコロン付きで保存します — これがカンマを期待するツールへのインポート時に壊れます。結果:間違った列の数字、または行全体がマージされます。
日付形式の罠 03/04/2026のCSVは曖昧です。4月3日ですか、3月4日ですか?Excelはロケールに基づいて自動解釈し、時には日付を黙って書き換えます。XLSXは日付を明示的な型メタデータ付きの数値(1900年からの日数)として保存し、曖昧さを取り除きます。
先頭ゼロの罠 0で始まる電話番号、郵便番号、製品SKUはXLSXではテキストとして生き残ります。CSVでExcelで再オープンすると数値として解析され、先頭ゼロは消えます。永遠に。
エンコーディングの罠 WindowsでANSIとしてエクスポートされたCSVは、éのフランス語名や日本語ファイル名が来るまで大丈夫に見えます。Excelで再オープンする場合は常にUTF-8 with BOMでCSVをエクスポートし、スクリプトが消費する場合はプレーンUTF-8でエクスポートしてください。
実用的な経験則
このシンプルなテストを使用:
- 人間が開きますか? → XLSX
- プログラムやパイプラインが消費しますか? → CSV
- 数式、複数シート、書式がありますか? → XLSX
- データベース、API、ツール不明なパートナーに送りますか? → CSV
- ファイルが100MBや50万行を超えますか? → CSV
迷ったら、マスターをXLSXで保ち、必要に応じてCSVにエクスポートしましょう。逆方向 — CSVに豊かな書式を構築してXLSXにアップグレードしようとする — は、それぞれの形式の利点を失います。
さらに進む
毎日スプレッドシートを使う場合、ブラウザ内の一般的なワークフローをカバーする2つの短いチュートリアル:
- ExcelなしでXLSXスプレッドシートをオンラインで編集する方法 — Excelなしで開く、編集、数式実行、エクスポート。
- JSON、YAML、CSV間の変換方法 — 構造を失わずに一般的な形式間でデータを往復させる。
両方ともブラウザ内で完全に動作し、ファイルをサーバーにアップロードすることはありません。
