# CSV Explorer

> Excelで開けない巨大CSVをブラウザで開く：数GB・数百万行対応。SQLiteへストリーミング取り込み、仮想スクロール表示・型判定・SQLクエリ。アップロードなし。

- URL: https://bytescope.dev/ja/csv-explorer/
- Locale: ja · Also: [en](https://bytescope.dev/en/csv-explorer.md) · [zh-Hant](https://bytescope.dev/zh-Hant/csv-explorer.md)
- Runs: ファイルは端末から直接読み込まれ、ローカルに保持されます。解析、データベース、クエリの実行はすべてこのタブ内で完結します — アップロードなし、アカウント不要、サーバーにコピーも残りません。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

Excelの上限は1,048,576行。しかも実際にはそのずっと手前で使い物にならなくなります。900 MBのエクスポートを開こうとして20分待たされ、結局落ちる — そんなファイルを、このページは数秒で閲覧できる状態にします。CSVはディスクからチャンク単位でストリーミング読み込みされ、読みながら解析され、タブ内でWebAssemblyとして動く本物のSQLiteデータベースに取り込まれます。つまり上限はディスクの空き容量であって、RAMでも、1985年に誰かが決めた行数でもありません。実測では、1.08 GB・836万行のファイルが普通のノートPCのブラウザタブで約2分で取り込み完了しました。

何もアップロードされません。この規模のファイルを開ける他のサービスは、どれもまずファイルを自社サーバーに置かせようとします。顧客データ、給与データ、データベースのエクスポートにとって、それこそが一番やってはいけないことです。ここでは`File`ハンドルをWeb Workerに渡し、`file.stream()`で読み込んで、オリジンプライベートファイルシステム（`OPFS`）内のデータベースに書き込みます。このサイトにはアップロード先のエンドポイント自体が存在しないので、誤って送信することすらできません。作業用データベースはページを離れると消去されます。

スクロールしている表は窓であって、ファイルそのものではありません。取得されるのはカーソル付近の行だけ — 取り込んだテーブルに対して`LIMIT`と`OFFSET`で一度に60行ほど — なので、900万行目も9行目と同じ速さで届きます。列の型（整数・実数・真偽値・日付・テキスト）は取り込み中に判定されますが、そのルールは「推測しない」ことです。`007`や`0912345678`はテキストのままなので電話番号が壊れず、`31/07/2026`は日付として扱われません（日/月か月/日か誰にも判別できないため）。JavaScriptで正確に表せない大きさの整数も、黙って丸められる代わりにテキストのまま残ります。

ソートもフィルタもSQLバーも、内部では同じもの — 自分のテーブルに対するSQLです。列名は正しくクォートされるので、ヘッダーに引用符が含まれていても壊れません。入力した値はすべて、文に貼り付けられるのではなくバインドパラメータとして渡されます。SQLバー自体に制限はありません。あなたのマシン上の、あなたのデータベースなので、`GROUP BY`でも`CREATE INDEX`でも、必要なものは何でも実行できます。現在の表示やクエリの結果はCSVとして書き出せます。1行ずつストリーミングで書き出されるため、1,000万行のエクスポートに必要なのはバッファ1つ分で、1,000万個の文字列ではありません。

## Limits

Does not edit cells or open Excel .xlsx files; it filters, sorts and profiles large CSV/TSV files.

## FAQ

### 実際、どのくらい大きなCSVを開けますか？

メモリより大きくても開けます。何もメモリに保持されないからです。ファイルはストリーミングで読み込まれ、行はブラウザのオリジンプライベートファイルシステム内のSQLiteデータベースファイルに収まるので、実質的な上限はディスクの空き容量と、ブラウザがこのサイトに与えるストレージ容量です。数GBは日常の範囲で、ノートPCでも毎秒数十MBの速度で取り込めます。

### ファイルはどこかにアップロードされますか？

いいえ。ブラウザがあなたのディスクから直接読み込み、あなたのマシン上のワーカースレッドで解析し、同じくあなたのマシン上にあるデータベースに書き込みます。アカウントもサーバーもアップロード先もありません。後片付けはタブを閉じるだけです。

### なぜExcelは私のCSVを開けないのですか？

たいてい理由は2つです。ワークシートは1,048,576行までしか持てず、それより長い部分は黙って切り捨てられるか、開くこと自体を拒否されます。さらにExcelはファイル全体をメモリに読み込むため、数GBのエクスポートはその上限に届く前にRAMを使い切ります。このページにはどちらの問題もありません。行数の上限はなく、全行が同時に存在することもないからです。

### カンマ区切りではないファイルでも大丈夫ですか？

大丈夫です。区切り文字はファイルの先頭から自動判定されます。カンマ・セミコロン・タブ・パイプを順に試し、最初のレコード群で項目数がどれだけ一貫しているかを採点します。頻度ではなく一貫性で決めるので、カンマだらけの文章列があっても、全行を同じ形に区切るセミコロンには勝てません。どれをなぜ選んだかはページに表示されます。

### 日本語や中国語が文字化けします。直せますか？

直せます。ドロップダウンから正しい文字コードを選ぶと、ファイルはその文字コードで再取り込みされます。文字コードは先頭65,536バイトから自動判定され、UTF-8、UTF-16、Big5、GBK、Shift_JIS、EUC-KR、Windows-1252に対応します。ただし古いCSVには文字コードの表記自体がないため推定が外れることもあり、結果は事実としてではなく「推定」として表示されます。

### 自分のCSVに対してSQLを実行できますか？

それこそがクエリバーの存在意義です。ファイルは文の中で名前を指定できるテーブルとして取り込まれ、SQLiteが理解するSQLなら何でも実行できます。集計、ウィンドウ関数、`CREATE INDEX`、サブクエリ。結果は独立した表として表示され、CSVにエクスポートできます。

### 項目が多すぎる行や少なすぎる行はどうなりますか？

修復ではなく報告されます。項目が足りない行は、足りない列が空のままになります。ヘッダーの列数より項目が多い行は、余った分がCSVとして再エンコードされ、専用の列に保持されます。ファイルの中身は何も消えず、該当した行数もページに表示されます。

### ファイルは書き換えられますか？

決して書き換えられません。元のファイルは読み取り専用で開かれ、一度も書き込まれません。ブラウザのストレージにある取り込み済みのコピーは作業用データベースで、取り込みのたびにゼロから作り直され、次に来たときには消去されています。エクスポートも古いファイルには触れず、新しいファイルを書き出します。

## Related tools

- [SQLite Viewer](https://bytescope.dev/ja/sqlite-viewer.md) — すでに .db や .sqlite ファイルをお持ちですか？同じようにテーブル、スキーマ、クエリを閲覧できます。
- [VCF to CSV Converter](https://bytescope.dev/ja/vcf-to-csv.md) — .vcf 連絡人エクスポートを表計算ソフトで綺麗に開ける CSV に変換 — 相互変換に対応。
- [File Type Identifier](https://bytescope.dev/ja/file-type.md) — ファイルの種類が不明ですか？拡張子ではなく先頭のバイト列からファイルを特定します。
