📊 File Limits · 7 min read
Excel Row Limit: Why Your CSV Won't Fit, and 6 Ways Past It
A modern Excel worksheet holds 1,048,576 rows and 16,384 columns. A CSV file has no such limit, so when the two meet, Excel wins and your data loses. The rows past the limit are not flagged as an error — they are simply not there any more.
That mismatch is one of the most common reasons people go looking for a tool that can handle the file. The message that usually gets typed into a search box is some version of: “ChatGPT can’t handle big CSV files — any other AI?” or “how do I open a CSV file that is too large for Excel?”
Both questions have concrete answers. This page covers the numbers, what actually goes wrong, and six ways to work with a file that has outgrown the spreadsheet.
What the Excel row limit actually is
| Format | Rows per sheet | Columns per sheet |
|---|---|---|
| .xlsx (Excel 2007 and later) | 1,048,576 (2²⁰) | 16,384 (2¹⁴) |
| .xls (Excel 97–2003) | 65,536 | 256 |
| CSV | No limit defined by the format | No limit defined by the format |
Those four numbers are why people still search for excel row limit 65536 today: a spreadsheet built on the old format has a very different ceiling, and it is often inherited rather than chosen.
The limit is a property of the worksheet grid, not of your file, your disk or your memory. That distinction matters, because it is the reason Power Query can do something Excel itself cannot.
What happens when you open a CSV that is too large
Excel loads what fits and discards the rest. Depending on your version, you get one of two outcomes:
- A warning— “File not loaded completely” or a note that some rows were truncated.
- Nothing at all. The file opens normally, the sheet ends at row 1,048,576, and every downstream number you calculate is quietly wrong.
The second case is the dangerous one. A truncated sum, average or pivot table looks exactly like a correct one. If you have ever found a row count that did not match the source system, this is the first thing to check — counting the rows correctly is a separate problem from the limit itself.
Why the file is usually a CSV
CSV exports from databases, CRM systems, ad platforms, billing systems and monitoring tools routinely cross a million rows. A single row is cheap in CSV: it is plain text, with no formatting, no formulas and no cell metadata.
The reverse also surprises people. A CSV can be bigger than the equivalent .xlsx file, because the compressed workbook stores repeated values far more efficiently than the uncompressed text export does. A 900 MB CSV can write out to a 90 MB workbook — and the workbook will still be truncated if it has more than 1,048,576 rows.
Six ways to work with a file that is too large for Excel
1. Power Query, loaded to the Data Model
This is the only way to keep working inside Excel with a file that breaks the row limit. The trick is not the query — it is the destination.
Import with Data → Get Data → From Text/CSV, then choose Add this data to the Data Model instead of loading it to a worksheet. The Data Model uses a different storage engine and is not capped at 1,048,576 rows, so the full file is available. You then work through a PivotTable or DAX measures rather than by scrolling cells.
The trade-off is that you lose the familiar grid: you cannot see row 4,000,000 sitting in a cell. For summing, grouping, joining and filtering, that rarely matters.
2. Split the file into chunks
Crude, but reliable, and often the fastest route if you only need one section. Split on row count and work through the parts:
# Skip the header for every chunk after the first
head -1 data.csv > header.csv
tail -n +2 data.csv | split -l 1000000 - chunk_
for f in chunk_*; do
cat header.csv "$f" > "part_$f.csv"
rm "$f"
doneEach part_*.csv opens normally. The catch is that any calculation spanning the whole file now has to be done per chunk and combined by hand, which is where mistakes creep in.
3. Google Sheets, if the file is medium-sized
Sheets is limited by cells rather than rows: 10 million cells per spreadsheet on the free tier. A 6-column file can therefore hold roughly 1.6 million rows — a little more headroom than Excel, but not a different order of magnitude. The same warning applies: importing more than the limit silently drops the excess.
4. DuckDB, for files that are genuinely large
If the file has tens of millions of rows, stop looking for a spreadsheet. DuckDB queries CSV files directly, streams them from disk and handles billions of rows on a laptop:
-- Install: pip install duckdb (or use the CLI)
SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM read_csv_auto('orders.csv')
GROUP BY region
ORDER BY revenue DESC;You get SQL, real aggregate results, and no truncation — but you also need to be comfortable running a command. On Windows the same work can be done in Power BI Desktop, which wraps Power Query in a friendlier shell.
5. Load it into a database
If this is a recurring problem rather than a one-off export, the file is a symptom: the data wants to live somewhere that is not a spreadsheet. PostgreSQL, SQLite, MySQL and their cloud equivalents all prefer millions of rows to a workbook.
6. Ask questions of the file, without opening it in a grid
The newest option, and the one that fits when the goal is an answer rather than a spreadsheet. Upload the file and ask for what you need in plain language — totals, trends, comparisons, a chart — without the whole dataset being rendered into a grid first.
This is what NoCodeCSV does. You upload a CSV or Excel file, ask a question, and get the answer and a chart back. There is no row limit to trip over because nothing is being laid out across 1,048,576 cells; the file is parsed and the question is answered directly.
It is worth being precise about why this is different from pasting data into a general chat assistant. A language model has to fit the file into its context window, and CSV text is expensive — every comma and every repeated column heading costs tokens. That is the failure mode people describe when they say a 3 MB, 20,000-row export produced summarised or hallucinated answers: the model did not see all of the rows. A tool built for the job parses the file first and computes on it, rather than reading it as prose.
Which route to take
| If you need to… | Use | Row ceiling |
|---|---|---|
| Keep working inside Excel | Power Query → Data Model | No grid limit |
| Hand someone a normal workbook | Split into chunks | 1,048,576 per part |
| Share and collaborate quickly | Google Sheets | 10M cells |
| Query tens of millions of rows | DuckDB / Power BI | Effectively none |
| Stop using spreadsheets for this | A database | Effectively none |
| Get an answer, not a grid | NoCodeCSV | No grid limit |
Frequently asked questions
What is the Excel row limit?
1,048,576 rows by 16,384 columns in the modern .xlsx format — the ceiling since Excel 2007. The older .xls format stops at 65,536 rows by 256 columns.
Why does my CSV file not open fully in Excel?
The CSV format has no row limit, so a file can contain more rows than a worksheet can display. Excel loads the first 1,048,576 and discards the rest, sometimes with a warning and sometimes silently.
How do I open a CSV file with more than 1 million rows?
Load it into Excel’s Data Model with Power Query, split it into chunks, open it in DuckDB or a Python notebook, or use a service that answers questions about the file without rendering it into a grid.
Can Power Query get around the Excel row limit?
Yes, if you load to the Data Model rather than to a worksheet. The model is not bound by the 1,048,576-row grid, and you analyse it through PivotTables or DAX.
Does ChatGPT have the same row limit as Excel?
No — it has a different and usually tighter one. Models work within a token context window, and CSV text is token-expensive, so files that open fine in a spreadsheet can be too large to analyse reliably in a chat model. That is the usual cause of summarised or invented answers on big exports.
Try it on the file that broke Excel
If you have a CSV sitting on your desktop that Excel refuses to open properly, the fastest way to find out whether the question you have is answerable is to ask it. Upload the file, ask for the total, the trend or the outlier, and see the answer come back with a chart.
Related reading
File Operations — other guides that pair well with this one.
Browse all guides in the NoCodeCSV blog.