Browser-native file tools

What to Do When a Large CSV Will Not Open in Excel

May 13, 2026 · 6 min read

Excel is convenient, but it is not a database. Large CSV files fail in predictable ways: Excel freezes, truncates rows, shows an error, or opens only part of the file.

The hard limit is 1,048,576 rows by 16,384 columns per worksheet. If your CSV is larger than that, Excel cannot display the whole file in one sheet.

First: check what kind of “too large” you have

There are three different problems:

  • Too many rows for Excel
  • Too many columns for Excel
  • File size is large enough to exhaust memory

A 900,000-row CSV can still freeze if it has hundreds of columns or huge text fields. A 3-million-row CSV will not fit in one Excel sheet at all.

Option 1: split the CSV

If you need to hand the data to someone who uses Excel, split the file into smaller chunks.

Use the CSV splitter and choose a row count under Excel’s limit. For comfort, use 500,000 rows per file rather than pushing right up to the maximum.

Example output:

orders_part1.csv
orders_part2.csv
orders_part3.csv

Each chunk should keep the header row so every file opens cleanly on its own.

Option 2: preview instead of opening the whole file

If you only need to inspect the data, use a viewer instead of Excel. The CSV viewer is useful for ordinary large files because you can check headers, search, sort and confirm the structure without converting the file to a workbook.

For very large files, use command-line previews:

head -20 big.csv

or:

wc -l big.csv

That tells you whether the file is worth splitting before you try opening it in Excel again.

Option 3: import into a database

If you need to filter or query millions of rows, a database is the right tool. SQLite is enough for many one-off jobs.

sqlite3 data.db
.mode csv
.import big.csv orders
SELECT * FROM orders WHERE region = 'EU' LIMIT 20;

For SQL export workflows, the CSV to SQL converter can generate inserts for smaller files. For multi-GB files, use the database’s native import command instead.

Option 4: process in chunks with Python

Pandas can stream a CSV in chunks:

import pandas as pd

for chunk in pd.read_csv("big.csv", chunksize=100_000):
    print(chunk.head())

This avoids loading the entire file into memory. It is the right path when you need repeatable cleanup or analysis.

What not to do

Do not rename .csv to .xlsx. That does not convert the file; it only changes the extension. Excel may warn that the format and extension do not match, and the row limit still applies.

Do not keep saving huge CSVs through Excel if the file contains IDs, leading zeros, or encoding-sensitive text. Excel can silently change types and formatting. See how to keep leading zeros in Excel CSV imports before editing.

Practical recommendation

If the goal is review: preview it. If the goal is sharing with Excel users: split it. If the goal is analysis: import it into SQLite, Postgres or pandas.

Excel is still useful at the end of the workflow, but it should not be the first tool you reach for when the CSV is bigger than a normal spreadsheet.

Read next