Guide
How to Open a CSV File That Is Too Large for Excel
Published · Updated
You double-click a CSV and Excel either freezes, or opens it and warns that the file was not loaded completely. The file is not broken; it is simply bigger than a spreadsheet can hold. What to do next depends on what you actually need from the data.
First: Why the File Won’t Open
An Excel worksheet holds at most 1,048,576 rows and 16,384 columns. Google Sheets allows 10 million cells in a whole spreadsheet, which a 20-column file reaches at 500,000 rows; Google is doubling that to 20 million, rolling out from September 2026. A file can also be under those limits and still be unusable, because spreadsheets work out the type and formatting of every single cell, which gets slow once a file is a few hundred megabytes. See Excel’s row limit explained for the details.
Before you decide anything, it is worth knowing how big the file actually is in rows rather than in megabytes — how to count the rows in a CSV does it without opening the file. A 900,000-row export needs a different plan from a 90-million-row one.
Pick the Right Approach
| What you need | Best option | Skill needed |
|---|---|---|
| Work with all the rows in Excel | 1. Split into Excel-sized parts | None |
| Only one region, customer or category | 2. Split by column value | None |
| Totals, pivots and summaries | 3. Excel Power Pivot / Data Model | Some Excel |
| Just look at the first rows | 4. A large-file text editor | None |
| Filter and query the full file | 5. DuckDB | Basic SQL |
| Repeatable processing | 6. Python with pandas | Programming |
1. Split the File into Parts That Fit
If you need to scroll, edit or share the actual rows, split the CSV into pieces of up to 1,000,000 rows each. Every part keeps the header row, so it opens as a normal spreadsheet. The large CSV splitter does this in the browser without uploading the file and without a size limit. Avoid splitting with a text editor or the Unix split command: both can cut a row in half when a quoted value contains a line break, and neither repeats the header.
A million rows is the Excel-shaped answer. If the parts are going into an import screen instead, the cap may be megabytes or cells rather than rows, and the number to type is different — how to split a CSV to fit an import limit has the published figures.
2. Split Out Only the Rows You Need
Very often nobody needs all 10 million rows at once. The finance team needs their cost centre, each store manager needs their store. Splitting by column value creates one file per value in a column you choose, and those files are usually small enough for Excel straight away.
3. Load It into Excel’s Data Model
Excel’s Data Model (Power Pivot) stores data outside the worksheet grid, so it is not bound by the row limit. In Excel for Windows, go to Data › Get Data › From File › From Text/CSV, choose the file, then pick Load To… and select Only Create Connection with Add this data to the Data Model ticked. You can then build PivotTables over many millions of rows. You cannot scroll through or edit the rows themselves this way.
4. View It in a Large-File Text Editor
If you only need to see what is in the file — the column names, a sample of rows, whether it looks corrupted — a text editor built for big files will open it quickly. EmEditor on Windows is designed for this, and on any system you can print the first lines from a terminal: head -n 20 file.csv on macOS and Linux, or Get-Content file.csv -TotalCount 20 in PowerShell. Ordinary Notepad struggles with very large files.
5. Query It with DuckDB
DuckDB is a free database that can run SQL directly against a CSV file without importing it first, and it copes well with files larger than your computer’s memory. After installing it, one line gives you a filtered result:
SELECT * FROM 'orders.csv' WHERE country = 'DE' LIMIT 100;
You can also save the result as a new, smaller CSV with COPY (SELECT …) TO 'germany.csv';
6. Process It with Python
If you will process the same export every week, a short script is worth writing. pandas can read a CSV in chunks so memory use stays low: pd.read_csv('file.csv', chunksize=500_000, dtype=str). Passing dtype=str matters: without it, pandas converts values such as 00742 to numbers, the same way Excel does.
What Not to Do
- Don’t save the file after Excel’s “not loaded completely” warning. Saving writes back only the rows Excel loaded, and the rest are gone from that file.
- Don’t upload confidential exports to a random website to open them. Check whether a tool processes files on your computer or on its server before you use it for customer or employee data.
- Don’t double-click a part and save it back as CSV. Opening a CSV in Excel rewrites values as it reads them, so identifiers come out changed even though you touched nothing. If the data has to end up in a workbook, import it rather than open it.
On a Mac, opening a large CSV on a Mac covers Numbers, Terminal and DuckDB. If the file is headed for Google Sheets instead, its limit is on cells, not rows: what to do when a CSV is too large for Google Sheets shows how to work out whether it fits.