Open a large CSV
How to open a large CSV file (over 1 million rows)
Drop a CSV of up to 1.5 GB into rows.page and it opens in your browser with no row limit, well past Excel's 1,048,576 rows. It's free with no signup, the file stays on your machine unless you click Share, and you can filter, run SQL or export a smaller slice.
No file handy? Open CO2 emissions by country and year (50k rows, 14 MB).
Why Excel and Google Sheets can't open big CSV files
An Excel worksheet holds 1,048,576 rows by 16,384 columns, and LibreOffice Calc has the same row limit. When a CSV has more rows, Excel loads what fits and warns: "This data set is too large for the Excel grid. If you save this workbook, you'll lose data that wasn't loaded." Don't save over the original file, or the missing rows are gone.
Google Sheets stops at 20 million cells or 100 MB per spreadsheet. A CSV with 20 columns reaches 20 million cells at 1,000,000 rows, often before it hits the file size limit.
| Tool | Row limit | Practical file size | Cost |
|---|---|---|---|
| rows.page | No row limit in the grid; SQL results up to 1,000,000 rows | 1.5 GB per browser tab; bigger CSVs load the first rows | Free, no signup |
| Excel worksheet | 1,048,576 rows by 16,384 columns | Whatever fits the grid; the rest isn't loaded | $179.99 one-time or Microsoft 365 |
| Excel Data Model | 1,999,999,997 rows per table | Rows stay out of the grid; you use them in PivotTables | Included with Excel for Windows |
| Google Sheets | 20 million cells per spreadsheet | 100 MB per spreadsheet | Free |
| LibreOffice Calc | 1,048,576 rows by 16,384 columns | Whatever fits the grid | Free |
| DuckDB CLI | No row limit | Any size, read from disk | Free |
| EmEditor 64-bit | 1,099 billion lines | Up to 16 TB | $60 per year |
How to open a large CSV in your browser with rows.page
rows.page reads the file with DuckDB-WASM inside your browser tab, so nothing is uploaded and you don't need an account.
- Open
https://rows.pageand drop your.csv,.tsvor.txtfile on the page, or choose it from your disk. - Scroll the grid. There is no row limit; rows load in pages of 100 as you scroll.
- Open the Columns panel to see each column's type, distinct count, share of empty values, min and max, and a histogram or its top 10 values.
- Filter in the search box, for example
country:NL,price:>20or-email:*for rows with no email. For anything more, type SQL that starts withSELECT,WITHorFROMand query the tabledata, such asSELECT country, count(*) FROM data GROUP BY country. - Open the Export menu and choose CSV. A filtered view exports every matching row; a SQL result exports up to 1,000,000 rows.
A browser tab holds up to 1.5 GB of CSV or TSV. If your file is bigger, rows.page loads the first part and shows "Loaded the first N rows: the file is X, more than the browser can hold." To work with every row of such a file, use DuckDB on your computer.
How to open a CSV over 1.5 GB with DuckDB
The DuckDB command-line tool reads CSV files of any size straight from disk. Start with an exact row count:
duckdb -c "SELECT count(*) FROM 'big.csv'"To explore the whole file in rows.page afterwards, convert it to Parquet once. Parquet is compressed and typed, and rows.page doesn't hold Parquet files to the 1.5 GB check.
duckdb -c "COPY (SELECT * FROM 'big.csv') TO 'big.parquet' (FORMAT parquet, COMPRESSION zstd)"If you only need to read or search the raw text, EmEditor 64-bit opens files up to 16 TB and costs $60 per year.
How to load more than 1,048,576 rows into Excel
If you have to stay in Excel for Windows, load the CSV into the Data Model with Power Query. The rows don't appear in the worksheet grid, but PivotTables can use all of them.
- In a blank workbook, go to Data > Get Data > From File > From Text/CSV and pick the file.
- In the preview window, click the arrow next to Load and choose Load To.
- Select Only Create Connection, tick Add this data to the Data Model, and click OK.
Microsoft's own advice for files that overflow the grid is the same import with Load To > PivotTable Report, which summarizes the full data set in a PivotTable.
How to split a large CSV into Excel-sized files
To hand the data to someone who works in a spreadsheet, export it in pieces under 1,048,576 rows. In rows.page, filter one category at a time, such as country:NL, and export each view. Or run this SQL and raise OFFSET by 1,000,000 for every next part:
SELECT * FROM data ORDER BY __rid LIMIT 1000000 OFFSET 0__rid is a hidden row number, so ORDER BY __rid keeps the original file order. It isn't included in the exported file.
rows.page limits and prices
| What | Limit or price |
|---|---|
| Open a file in your browser | Files up to 1.5 GB, $0, no account, nothing uploaded |
| Share a link without an account | $0, files up to 100 MB, link deleted 7 days after creation |
| Free account | $0, 10 datasets kept, last 3 versions |
| Pro | $12/month, 100 datasets, files up to 500 MB, private links |
| Max | $39/month, 1,000 datasets, files up to 2 GB, private links |
Questions
Why does Excel stop at 1,048,576 rows when I open a CSV?
An Excel worksheet holds 1,048,576 rows by 16,384 columns, so Excel loads what fits and warns "This data set is too large for the Excel grid." Don't save over the original; load the file into the Data Model or open it in rows.page instead.
Does rows.page upload my CSV file?
No. DuckDB-WASM reads the file inside your browser tab, and nothing leaves your computer unless you click Share or push it with curl -T data.csv https://rows.page.
What happens if my CSV is bigger than 1.5 GB?
rows.page loads the first part of the file and shows "Loaded the first N rows: the file is X, more than the browser can hold." For every row, query the file with the DuckDB CLI or convert it to Parquet, which isn't held to the 1.5 GB check.
Can rows.page open a large Excel .xlsx file?
No. rows.page opens CSV, TSV, JSON, JSONL and Parquet, so save the sheet as CSV first; a pushed .xlsx gets "This looks like an Excel or zip file. Export it as CSV and push again."
Can I open a large CSV straight from a URL?
Yes, put the link after https://rows.page/, for example https://rows.page/https://example.com/data.csv. Your browser fetches the file directly, or through the rows.page proxy (up to 100 MB) when the host blocks cross-origin requests, and the 1.5 GB tab limit still applies.