How to Open a Large CSV File on Mac
Opening a big CSV on a Mac should be simple. In practice, double-clicking the file often launches Excel or Numbers, the app beachballs, and you never see the last row.
This guide covers why that happens and how CSVUtility is built to avoid it.
Why the default apps stall
Excel for Mac can store 1,048,576 rows, but it still tries to load a workbook into memory, guess types, and draw every cell. A 200 MB warehouse export is enough to freeze it. A 1 GB file is usually a non-starter.
Numbers is built for layouts and charts, not for scanning millions of rows. TextEdit and VS Code will open the file as plain text, which is fine for a peek and useless for sorting, filtering, or editing a column.
If your Mac fans spin and the window never appears, the file is not corrupt. The app is the wrong tool.
What CSVUtility does instead
CSVUtility is a Mac CSV editor (macOS 14 or later, Apple silicon and Intel). It does not load every cell into memory.
On open it maps the file from disk, so the Mac can drop unused pages when memory is tight. It then remembers where each row starts. A cell is read only when something needs it: drawing the visible grid, a search hitting that row, or a filter.
For a 10 GB / 100 million-row file, that map is on the order of 800 MB, versus more than a terabyte if every cell were a live string.
Repeat opens of an unchanged UTF-8 file can skip the full scan. CSVUtility writes a small cache next to the file. A hit turns the next open into a quick check plus reading that map. That is the Persistent row indexes setting under Settings → Files & Performance → Large Files & Storage.
On a 14-inch MacBook Pro (M1 Pro, 16 GB), a 1 GB UTF-8 CSV with 12.49 million rows opened in 2.03 seconds the first time, and 0.058 seconds from that cache. Numbers, hardware, and method are on the benchmarks page.
Open a large CSV in CSVUtility
- Download CSVUtility. Requires macOS 14 or later. Drag CSV Utility into Applications.
- File → Open… (⌘O), or pick the file from File → Open Recent.
- Wait through the loading window if the file is above your Show loading window threshold. You can cancel a long open.
- If columns look smashed together, the delimiter guess was wrong. Go to CSV Utility → Settings… (⌘,) → Import & Export and set Import delimiter to Comma, Tab, Semicolon, or Pipe instead of Automatic. Re-open the file.
- Freeze the header with View → Freeze First Row so you can scroll without losing column names.
Jump to a known place from the formula bar: click the A1-style reference (tooltip Go to cell) and type E6 for a cell, E for a column, or 120 for a row. Letters then digits only. F:F is not a valid Go To value.
After it is open
From the tool strip or Edit → Command Palette… (⌘⇧P) you can:
- Find & Replace… (⌘F)
- Filter…, which opens the filter bar (see filter a CSV with SQL)
- Check Data Quality… for ragged rows and unclosed quotes
- Toggle Diff View once you have unsaved changes, to compare those cells with the file on disk
For a small sample in the browser, the CSV tools never upload data, but they cap around 15 MB. Gigabyte files belong in the Mac app.
If you must stay in Excel
Split the file first. split -l 500000 large.csv chunk- writes smaller pieces. Later chunks will not have a header unless you copy one in. That is a workaround, not a workflow.