Database6 min

How to Open a Multi-GB CSV File Without Excel Crashing

Open 1 GB, 5 GB, even 20 GB CSV files in your browser using DuckDB-WASM. Scroll, filter, and query without loading the whole file into RAM.

Zro7 Big CSV Viewer streams the file locally via DuckDB-WASM. No upload, no size limit imposed by us.

To open a multi-GB CSV without Excel or Numbers crashing, use Zro7 Big CSV Viewer. It uses DuckDB-WASM to memory-map the file, so you can scroll, filter, and query files far larger than your RAM — 1 GB, 5 GB, 20 GB — without ever loading the whole thing into memory. Zero upload, runs in your browser tab.

Why Excel dies

Excel has a hard limit of 1,048,576 rows per sheet and loads the entire workbook into memory. A 2 GB CSV expands to 5–10 GB of Excel objects. Numbers crashes even earlier. Google Sheets caps at 10 million cells total. None of these are built for the shape of a raw data-warehouse export.

How Zro7 handles it

  1. The file handle is registered directly with DuckDB-WASM — no pre-load.
  2. DuckDB reads only the byte ranges the current view or query needs (columnar reads).
  3. The UI shows a virtualized 100-row window at a time, so scrolling is instant.
  4. Any SQL you type runs against the raw file — no import step.

What you can actually do

  • Peek — auto-loads first + last rows; column types inferred.
  • Filter — click any column header to add a WHERE.
  • Count / groupSELECT status, COUNT(*) FROM data GROUP BY status.
  • Export a sliceCOPY (SELECT ... WHERE date > '2026-01-01') TO 'slice.parquet'.

Steps

  1. Open Big CSV Viewer.
  2. Drop the CSV. First 100 rows appear immediately even for a 10 GB file.
  3. Scroll, sort, filter, or drop into SQL Playground for real queries.
  4. Export any filtered slice as CSV or Parquet.

Frequently asked questions

What's the real limit?

Bounded by your OS filesystem and browser origin quota. In practice 20 GB works on 16 GB laptops thanks to memory-mapping — DuckDB never has to load the whole file.

Does it work on mobile?

Yes, but mobile browsers cap origin storage more aggressively. Files up to a few hundred MB are comfortable on modern phones.

TSV / pipe-delimited files?

Yes — DuckDB auto-detects delimiter, or you can pass <code>read_csv(..., delim='|')</code>.

How does this compare to cloud tools?

Uploading a 5 GB CSV to Google Sheets, Airtable, or Retool is impractical and expensive. Zro7 scrolls the same file locally in under a second.

Any upload?

None. The file stays on your disk; DuckDB-WASM streams from it directly.

Related posts

← Back to blog