Guide · 4 min read

Open a CSV of millions of rows on a Mac.

Excel stops at 1,048,576 rows; many editors stop long before. Here is what works for a file of five million rows — and, to be fair, what works when a file is bigger than your Mac's memory.

Where the usual tools stop

  • Excel holds at most 1,048,576 rows on a sheet. A longer file opens with the rest cut off, and saving it loses them for good.
  • Text editors can open large files but know nothing about columns — no sorting, no filtering by column, no sums.
  • Many CSV editors read the whole file before showing anything, and hold every value as a separate object in memory. A few hundred megabytes is then several gigabytes.

What Intact CSV Editor does

It reads enough rows to fill the window before the window appears, and streams the rest in behind it while you scroll, edit and search. A 325 MB file of 5.2 million rows is on screen in well under a second and fully read about eight seconds later. A large file is mapped rather than copied into memory, and values are held as UTF-8 bytes rather than as separate strings: the five million rows of a 312 MB sample take about 186 MB for the table instead of 816 MB.

One million rows × 7 columns (52 MB)Time
First rows on screen0.05 s
Detect the format0.05 s
Read the whole file2.0 s
Save, byte for byte0.26 s
Filter every row1.5 s
Load into SQL1.5 s
Grouped SQL query0.6 s
Grouped query with RLIKE0.9 s
Export to Excel (33 MB written)10.4 s

Measured on a release build on 20 September 2026, on the Mac the app is developed on.

While the file loads, anything that needs the whole table — saving, exporting, sorting, SQL — waits for the last row, so a half-read file is never written out truncated. A sort asked for in the meantime says it is waiting and runs when the file is in.

Other formats get the window first too. A large JSON, XML or YAML document, or a web page, cannot be read from the middle, so it is read whole — but in the background, with the window already up and saying what it is doing.

A file of a gigabyte

Bigger than most people ever open, and where the difference shows. A 1 GB file — sixteen million rows in seven columns — is held in about 1.6 GB while you work on it, because the values are bytes in one block rather than sixteen million separate objects. Once it is in, it stays quick: sorting all sixteen million rows takes about five seconds whichever column you sort by, and the window stays live while it happens.

What a big file usually runs into is not the sort but the history. Undoing a sort means remembering the order the rows were in — eight bytes a row, so 128 MB for one sort of this file, and fifty of them would be six gigabytes of row order and a Mac that starts swapping. Here the history is bounded by what it holds rather than by how many steps it is, so sorting the same file over and over cannot fill memory.

Sixteen million rows × 7 columns (1 GB)Measured
Held in memory while you work on it1.6 GB
Sort all sixteen million rowsabout 5 s
Ten sorts, one column after anothernever past 2.7 GB
Undo a sort0.2–1.1 s

Measured on a release build on 20 September 2026, on the Mac the app is developed on.

Working with a big file

  1. Look first. Scroll, search and filter; filtering and search run off the main thread, so the window stays smooth.
  2. Count it. Table ▸ Statistics counts every column: filled, empty, distinct, minimum, maximum, median.
  3. Ask it. The SQL console answers grouped questions in a fraction of a second once the table is loaded.
  4. Cut it down. Extract the filtered rows to a new file, or File ▸ Split into Several Files for pieces of a fixed size.
  5. Keep watching it. For a log or an export another program is still writing, View ▸ Follow the File as It Grows adds the new rows as they arrive, the way tail -f does.

A file over five gigabytes opens locked, and says so: a stray keystroke should not be able to cost you a save of a file that size. Untick Table ▸ Locked Against Changes when you mean to edit.

When the file is bigger than memory

Intact CSV Editor holds the table in memory, compactly. When you only need to look at part of a huge file, File ▸ Open Part of a File opens its first megabytes, its last, or a stretch from any point as a table of its own — cut where records begin, with the header line put in front — and reads only that part from the disk.

To work through every row of a file of many gigabytes — tens of millions of rows, or more than your Mac's memory — a tool that reads the file without loading it is the better choice: a memory-mapped editor such as Caxton, a viewer built on DuckDB such as Tad, or command-line tools such as qsv and csvkit. We compare them honestly on our comparison pages.

Try it on your own file

Intact CSV Editor is in beta. Join the beta and we will write to you as soon as your access is ready.

Questions

Common questions

How many rows can Intact CSV Editor open?

There is no fixed row limit; your Mac's memory is the limit. Files of several million rows open in seconds, and a file of a gigabyte — sixteen million rows — is held in about 1.6 GB.

Can I open only part of a huge file?

Yes: File ▸ Open Part of a File opens the first megabytes, the last, or a stretch from any point, and reads only that part from the disk.

Can Excel open more than a million rows?

Not on one sheet: Excel's limit is 1,048,576 rows. Power Query can load more into the data model, but not as rows on a sheet you can edit.

Open your most difficult file.

Join the beta and we will write to you as soon as your access is ready. Your files never leave your Mac.

macOS 14 Sonoma or later · How we use your address