元のCSV・TSVをブラウザで確認する
FileはDevelopToolsのServerへ送信せず、選択したEncodingとDelimiterでBrowser内解析します。元Fileを上書きせずに表・行数・列数・検索結果を確認できます。
大きなCSVを表形式で確認する結論:元ファイル・Decode・Parse・表示を分けて確認する
まず1MB、10MBのCopyでEncoding・Delimiterを確定し、必要に応じて元Fileへ進みます。現行Viewerは全体Decode後に最大100,000行・200列をWorker解析し、25~200行ずつ描画します。
50MB・100MBの可否は端末Memory、列数、長いField、Browserに依存します。対応を保証せず、元FileのBackupと小さいSampleを用意してください。
最小サンプルで症状を再現する
id,status,message
1,OK,short text
... 100,000 data rows
行数だけでなく列数、100KB級の長いField、Quoted NewlineがMemoryと解析時間を増やします。
大容量を段階的に実測する
| Test | 確認対象 | 切替判断 |
|---|---|---|
| 1MB / 10,000行 | Encoding・Delimiter・Quote | 設定を確定 |
| 10MB / 100,000行 | 解析時間・Memory・検索 | 端末で継続可否を判断 |
| 50MB / 100MB | Browser応答・Reload・制限 | 不安定ならCLIやDBへ切替 |
| 500,000行 / 1,000列 | 現行上限超過 | 完全表示目的には使わない |
Paginationは表示DOMを減らしますが、解析結果自体はMemoryへ保持します。WorkerもStreamingではないため、巨大File向けの万能対策ではありません。
元ファイルを変換せずに開く
- 調査前のCSV・TSVを上書きせず、同じFileを表計算SoftwareとViewerで比較します。
- File選択またはDrag & DropならByte列をUTF-8・Shift_JISでDecodeできます。貼り付け入力はすでにBrowserの文字列になっているため、Encoding切替の比較には元Fileを使います。
- 先頭行がHeaderなら「先頭行を見出しとして使用」をONにし、HeaderなしDataならOFFにします。
- 読み込み後にData行数、列数、推定または選択した区切り文字、警告を確認します。
ViewerはFieldを文字列のまま保持します。00123、12345678901234567890、1-2-3、true、=SUM(A1:A10)をNumber・Date・Boolean・Formulaへ変換しません。
区切り文字を自動推定と手動指定で比較する
| 形式・候補 | 実際の境界 | 1列や列ずれが起きたときの確認 |
|---|---|---|
| CSVのCommon Format | Comma(,) | Quoted Field内のCommaを列境界にしない |
| TSV | TAB(U+0009) | Spaceや文字列「\t」と区別する |
| Semicolon区切り | Semicolon(;) | 地域・出力SoftwareによるDialectを確認する |
| Pipe区切り | Pipe(|) | 値の中にPipeがある場合のQuote規則も確認する |
自動推定は先頭50,000文字から候補をParseし、複数行で列数が安定する候補を選びます。文章Fieldに特定記号が多いFileでは誤る可能性があるため、結果が不自然ならComma、TAB、Semicolon、Pipeを1つずつ手動選択します。拡張子やMIME Typeだけで区切り文字を断定しません。
UTF-8・Shift_JIS・BOMを分けて確認する
文字化けは同じByte列を異なるEncodingでDecodeしたときに起きます。Fileを選び、まずUTF-8、読めなければShift_JISへ切り替えて再読込します。現在のViewerはEncodingを自動判定しないため、選択結果と日本語・記号・機種依存文字を目視確認します。
| 確認対象 | Viewerでの扱い | 注意点 |
|---|---|---|
| UTF-8 | TextDecoder("utf-8")でDecode | Emojiや日本語の代表行を確認する |
| Shift_JIS | TextDecoder("shift_jis")でDecode | CP932固有文字はBrowser実装と元Fileを実測する |
| UTF-8 BOM | 先頭U+FEFFを除去しHeaderへ残さない | BOM有無そのものを画面へ診断表示はしない |
| LF・CRLF | どちらもRecord区切りとしてParse | 混在状態や採用Codeの診断表示はしない |
BOMを付ければすべての環境で必ず直るわけではありません。利用先のImport方法とEncoding要件を確認し、元FileのCopyで試してください。
列数・Double Quote・セル内改行を一緒に確認する
id,name,memo
1,Alice,"Tokyo, Japan"
2,Bob,"Line 1
Line 2"
3,Carol,"He said ""Hello"""
CSVをline.split(",")やtext.split("\n")だけで処理すると、Quoted CommaやQuoted Newlineを列・Record境界と誤認します。現行ViewerはQuoteの内外を1文字ずつ追跡し、Field内の""を1つの"として戻します。空Fieldと末尾Delimiterも列位置として保持し、Whitespaceを勝手にTrimしません。
- 列数Warningは最大列数と異なるData行の件数です。現在は該当Row番号までは表示しません。
- 閉じていないQuoteはWarningになります。表示結果だけで修復せず、元FileのQuoteを確認します。
- 空Headerは「列 n」、重複Headerは「name (2)」のような表示名になりますが、元Dataを書き換えたわけではありません。
- 空行は1列の空Fieldを持つRecordとして残り得ます。途中の空Field、空Record、欠損値の意味は入力元Systemの仕様で判断します。
Excel等による自動変換と元CSVを切り分ける
| 元Field | 表計算Softwareで起こり得る表示 | Viewerで確認する値 |
|---|---|---|
| 00123 | 123 | 00123 |
| 12345678901234567890 | 指数表記または15桁以降の精度変化 | すべての文字 |
| 1-2-3 / JAN1 | 日付らしい値 | 元の文字列 |
| 1e10 | 指数表記の数値 | 1e10 |
| =SUM(A1:A10) | Formula | 実行しないText |
Viewerで元文字列が残っていれば、変化はCSV保存時ではなくImport・表示段階で起きた可能性があります。すでに元CSV自体が変換後の値ならViewerから元のZeroや桁を復元することはできません。Excelへ取り込む場合は、MicrosoftのText/CSV ImportやAutomatic Data Conversion設定も確認します。
現在のCSV・TSVファイル閲覧ツールで確認できること
| 分類 | 対応内容 | 確認しておく境界 |
|---|---|---|
| 入力 | CSV・TSVファイルの選択、Drag & Drop、Text貼り付け | 複数Fileの一括読込、URL取得、履歴復元は行わない |
| 文字コード | UTF-8またはShift_JISを手動選択し、先頭のUTF-8 BOMを除去 | Encoding自動判定、BOM・改行Codeの診断表示は未対応 |
| 区切り文字 | Comma、TAB、Semicolon、Pipeを自動推定または手動選択 | 任意のCustom区切り文字には未対応。自動推定は完全ではない |
| CSV解析 | Double Quote、Quoted Comma、Escaped Quote、Quoted Newline、空Fieldを独自Parserで処理 | RFC 4180の厳密なValidatorではない |
| 見出し | 先頭行をHeaderとして使う設定をON・OFF可能 | 空Headerは列番号で補完し、重複Headerは連番で画面上の識別名を付ける |
| 表 | 行番号、全列検索、列Header Sort、25~200行のPagination、列幅・行高調整 | 列Filter、Raw専用View、Virtual Scroll、CSV再出力は未対応 |
| 診断 | Data行数、表示列数、区切り文字、閉じていないQuote、行ごとの列数不一致を表示 | 不一致Row番号・BOM・Encoding・LF/CRLFの個別表示は未対応 |
| 大容量 | 解析はWeb Workerで行い、最大100,000 Data行・200列を保持してPagination表示 | Streaming・Chunk Parse・Virtualizationではなく、超過分は表示対象外になる |
画面にない機能を前提に原因を断定しません。特に文字コードと区切り文字の自動判定、Raw View、行単位の詳細診断、任意サイズの大容量対応は、現在のツールにはありません。
ブラウザ処理・大容量・Privacyの実装境界
FileのArrayBuffer、Decode後Text、解析Row、検索KeywordはBrowser内で処理し、CSV本文・File名・Header名・Cell値をfetchやsendBeaconで送る処理はありません。読込内容をlocalStorageへ保存せず、Reload後は復元しません。ただしSite共通の広告・Analytics通信と、利用者が入力したCSV本文の送信は別の話です。機密Dataでは組織のPolicyとBrowser Extensionも確認してください。
解析はWeb Workerへ分離していますが、File全体をMemoryへ読み込む方式です。表示はPaginationでDOM数を抑えますがVirtualizationやStreaming Parseではありません。100,000 Data行・200列で打ち切るため、「100MBを必ず開ける」「500,000行を完全表示できる」とは案内できません。1MB、10MBなど小さい段階から端末Memoryと応答を実測してください。
Formulaに見える文字列や<script>はCellのtextContentとして表示し、式・HTML・JavaScriptとして実行しません。表計算SoftwareへCopy・Importした後の挙動は別途確認してください。
解決しない場合の切り分け
- 元FileをText Editorでも開き、Comma・TAB・Quote・改行が実際にどこへ入っているか確認します。
- 数行だけのCopyを作り、同じEncoding・Delimiter・Header設定で再現するか確認します。
- 100,000行または200列を超える場合は、表示件数制限と元Dataの不一致を混同しないようにします。
- 2つのFileのRaw Text差分はText Diff、Fileが完全一致するかだけならHash生成・照合を使います。CSV列単位のSemantic Diffではありません。
- CSVを別形式へ変換した後にJSON階層を調べる場合はJSON Tree Viewerを使います。現行サイトにはCSV→JSON専用変換Toolはありません。
仕様とSoftwareの一次資料を確認する
- RFC Editor: RFC 4180 Common Format and MIME Type for CSV Files
- IANA: text/tab-separated-values
- MDN: FileReader
- MDN: TextDecoder
- Microsoft Support: Opening CSV UTF-8 files correctly in Excel
- Microsoft Support: Keeping leading zeros and large numbers
- Microsoft Support: Data import and analysis options in Excel
RFC 4180はCSVのCommon FormatをまとめたInformational RFCであり、現実のすべてのCSVが同じDialectという意味ではありません。TSVはIANA登録、BrowserのFile読込・DecodeはMDN、Excel固有の自動変換はMicrosoft Supportを優先して確認します。
まとめ
- 1MBから段階的に端末で実測する
- WorkerはUI停止を軽減するがMemory使用量はなくならない
- 最大100,000 Data行・200列の表示制限を理解する
元Fileを残したまま、Encoding、Delimiter、Header、Quote、改行、列数、表計算Softwareの自動変換を順番に切り分けると、CSV・TSVの問題を推測だけで修正せずに済みます。
具体例:大容量CSV・TSVを確認する方法を再現する
元Fileを上書きせず、まず数行のCopyで「id,status,message / 1,OK,short text / ... 100,000 data rows」を確認します。
行数だけでなく列数、100KB級の長いField、Quoted NewlineがMemoryと解析時間を増やします。 設定が決まったら同じEncoding・Delimiter・Header条件で元Fileを開き、問題の前後も比較します。
- 元CSV・TSVのCopyをFile選択またはDrag & Dropで読み込みます。
- UTF-8またはShift_JISを選び、日本語と記号が読めるか確認します。
- Delimiterを自動推定から手動指定へ切り替え、列数が揃うか比較します。
- Header、Quote、空Field、セル内改行、Warningを確認します。
- 元Fileと表計算Softwareの表示を比較し、原因を確定してから修正します。
調査中は元Fileを上書きしません。Viewerの表示だけでDataを修復したと判断せず、入力元・利用先の仕様とも照合してください。
よくある質問
- CSV・TSVの内容はサーバーへ送信されますか?
- CSV本文、File名、Header、Cell値、検索KeywordはViewerのBrowser内で処理し、DevelopToolsのServerへ送信・保存しません。Site共通の広告・Analytics通信やBrowser Extensionは別途確認してください。
- 文字コードや区切り文字を自動で完全判定できますか?
- できません。文字コードはUTF-8またはShift_JISを手動選択し、区切り文字の自動推定もComma・TAB・Semicolon・Pipeから列数の安定性で選ぶHeuristicです。結果を手動で確認してください。
- 500,000行や100MBのCSVもすべて表示できますか?
- 保証できません。現行ViewerはFile全体をMemoryへ読み込み、最大100,000 Data行・200列を表示します。Streaming・Virtualizationではないため、小さいCopyから段階的に試してください。