Withdata Software

Excel Won’t Open a 350 MB File: The Row Ceiling, the Memory Wall, and What Actually Opens It

The workbook is on your disk. Double-click it, and Excel either shows “Excel cannot complete this task with available resources”, sits at 0% until the file stops responding, or opens 1,048,576 rows and quietly stops. The file is not corrupt, and re-saving it from the machine that made it will not help:

Limit Value What it means
Rows per worksheet 1,048,576 a .xlsx cannot hold more, whatever your hardware
Columns per worksheet 16,384 rarely the wall
Workbook memory roughly 10× the file size 400 MB of xlsx easily becomes 4 GB of RAM in Excel
32-bit Office 2 GB address space it cannot get near that, so it dies first

The people in the threads say the same thing. In r/excel, “Excel file far too large to even open” (2026-04, 51 comments) and “Excel grew from 400MB to 650MB” (2026-06, 77 comments) are both about the same wall, and in “Having trouble extrapolating data from a 10GB CSV file” the advice is to stop using Excel for the job at all.

1. Three routes out, and only one shows you the data

Route one — make the workbook smaller. Delete unused columns, drop formatting, split it into twelve workbooks and puzzle it back together in your head. This is the route everyone starts with, and it is work you repeat every time the report is regenerated.

Route two — convert it and query it. Convert the xlsx to CSV and open that in a database, Power Query or pandas. It works, and if you already live in SQL it is a good answer — but you no longer have the thing you wanted: the file, on screen, scrolled to row 900,000.

Route three — open it in something that is not Excel. A grid viewer reads the workbook as a stream of rows instead of building the whole object model in memory, so the file opens and the memory stays flat. That is what BigDataFileViewer does; it is a read-only viewer, which is the point — you are looking at a 400 MB report, not editing it.

2. Opening it — the GUI route

  1. File → Open File… (Ctrl+O), or drag the .xlsx onto the window. The file opens in its own tab.
  2. The Sheet drop-down at the top picks the worksheet; the status bar shows the shape:

rows × cols, the file size, how long it took to open, and the memory it is using.

  1. Go to row (Ctrl+G) takes a row number; Ctrl+Home and Ctrl+End go to the first and last row.

The grid keeps one page of 50,000 rows in memory and moves the page as you scroll, so the row count does not change the memory figure.

  1. Search → Find… (Ctrl+F) scans the whole workbook and lists the hits; double-click one to jump

to it. For .xlsx this means decompressing the sheet, so it is slower than for CSV, and the progress line says how far it has got.

  1. File → Export View as CSV… writes what you are looking at as CSV or TSV, header row included —

which is how you hand a slice of the 400 MB file to someone who only has Excel.

Measured on the machine that wrote this (Windows, 64-bit), with files opened through the GUI above:

File Rows × columns Open Memory Jump to a random row
.xlsx, 345 MB 1,048,575 × 14 9.9 s 119 MB last page, still < 1 s
.xlsx, 236 MB 800,000 × 8 0.72 s 21.6 MB worst of 12 jumps: 0.69 s
.csv, 817 MB 12,000,000 × 8 1.7 s 21 MB 15 ms average

Excel refuses the first one outright — 1,048,575 data rows plus the header is exactly the row ceiling, and at that size it cannot keep the workbook in memory anyway.

3. What you cannot expect from a viewer

where the data lives.

suggests saving as .xlsx first.

was built for.

4. From the command line

If you only want to know whether a workbook is the one you think it is, the same program answers from the shell — the numbers land in %TEMP%\bdv.log:

“ BigDataFileViewer.exe "Q3-orders.xlsx" --selftest BigDataFileViewer.exe "Q3-orders.xlsx" --find "INV-2026-0042" BigDataFileViewer.exe "Q3-orders.xlsx" --export "Q3-orders-view.csv" “

--selftest opens, jumps and re-reads rows and reports pass/fail with an exit code, so it can sit in a scheduled check that the nightly export is still readable.

5. Two traps worth knowing

The row ceiling is a file-format ceiling, not an Excel setting. If a system exports 1.2 million rows to .xlsx, rows past 1,048,576 are already gone in the file — no viewer can bring them back. Check the row count of the export, not the row count Excel shows.

A “small” xlsx can still be slow. Compressed text columns (shared strings) are the expensive part: a 30 MB workbook with 600,000 distinct strings is heavier than a 200 MB workbook of numbers. The memory figure in the status bar is the honest one — watch it, not the file size.

FAQ

Why does Excel stop at 1,048,576 rows?

That is the maximum a worksheet can hold in .xlsx (and in .xls, 65,536). It is a format limit: the row index in the file cannot address more rows.

Will a 64-bit Office open a 400 MB workbook?

Sometimes, if the workbook is mostly numbers and the machine has plenty of RAM. 64-bit removes the 2 GB address-space wall, but Excel still builds the whole workbook in memory (several times the file size), so very large or text-heavy files remain slow or fail.

Can I open the file without converting it first?

Yes — that is the route in §2. The viewer reads the .xlsx directly (streaming the sheet XML), so there is no conversion step and no second copy on disk.

Does it change my file?

No. It opens read-only and writes nothing back. Export writes a new CSV/TSV next to it if you ask.

What if the file is on a network share?

Opening is a streaming read, so the first screen appears as soon as the first rows arrive; jumping to the end reads the sheet to the end, which is slower over a slow link.

My workbook has formulas — what do I see?

The value Excel stored with the formula, not a recalculated one. If the workbook was written by another tool and never opened in Excel, that value may be empty.

Opening a file that is too big for Excel

If the job is look at it, find the row, copy the part you need, BigDataFileViewer opens CSV, Excel, JSON and XML files of any size in a grid — the 345 MB workbook above is 1,048,575 rows and 14 columns in 9.9 seconds and 119 MB. There is a 30-day trial, and the download page has Windows, Linux and macOS builds.