The CSV editor for Mac that keeps your data intact.
Open CSV, Excel, JSON, Parquet, SPSS and 38 other formats. Edit them in a fast, native grid. Save them back byte for byte — 007 stays 007, 1/2 stays 1/2, Zürich stays Zürich.
Why not just use Excel? →- Early access, before the release
- Your address only for the beta
- Your files stay on your Mac
The file as it arrives. UTF-8, comma-separated, CRLF, one name in quotes.
customer_no,name,city,order_id,portion,code␍␊ 00731,"Zäch, Söhne & Co.",Zürich,202609100000012345,1/2,SEPT1␍␊ 00732,Brönnimann GmbH,Genève,202609100000012346,3/4,MARCH1␍␊ 00733,Talwind Energie AG,Chur,202609100000012347,1/8,1E5␍␊
231 bytes · UTF-8 · CRLF · 5 characters outside ASCII
What a spreadsheet's default settings can make of it. Red: changed.
| customer_no | name | city | order_id | portion | code | |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 | Talwind Energie AG | Chur |
16 of 18 values changed
Opened, edited or not, and saved. Green: kept.
| customer_no | name | city | order_id | portion | code | |
|---|---|---|---|---|---|---|
| 1 | 00731 | Zäch, Söhne & Co. | Zürich | 202609100000012345 | 1/2 | SEPT1 |
| 2 | 00732 | Brönnimann GmbH | Genève | 202609100000012346 | 3/4 | MARCH1 |
| 3 | 00733 | Talwind Energie AG | Chur | 202609100000012347 | 1/8 | 1E5 |
0 of 18 values changed · detected: UTF-8, comma, CRLF, header row
Illustration using a spreadsheet's default import settings and a wrong guess at the encoding. Recent versions of Microsoft 365 let you switch some conversions off.
changed when you open a file and save it without edits — checked for every preset, UTF-16 and a million rows.
on screen in well under a second. The whole 325 MB file is read about eight seconds later.
to export to, from CSV and Excel to Parquet, SPSS, SQL, PDF and Word.
English, German, French, Italian, Spanish, Portuguese, Dutch and Polish.
Everything in the file is still there when it leaves.
Spreadsheets were made for calculating, so they turn what looks like a number into one, and what looks like a date into a date. A data file is not a calculation. Intact CSV Editor shows you what is in it, and writes back what was in it.
| What is in the file | After a spreadsheet round trip | After Intact CSV Editor |
|---|---|---|
| Leading zeroscustomer numbers, postcodes, article numbers | 731The zeros are gone, and so is the match with every other system. | 00731A code stays a code. |
Fractions, ranges, versions1/2, 3/4, 1-2 |
2-JanRead as a date, and saved as one. | 1/2Exactly as written. |
Gene names and product codesSEPT1, MARCH1, 1E5 |
1-Sep 1.00E+05In 2020 human genes were renamed partly because spreadsheets kept doing this. | SEPT1 1E5Text is text. |
| Long identifiersorder numbers, 18-digit SSCC shipping codes | 202609100000012000Only 15 digits are kept; the rest become zeros. | 202609100000012345Every digit. |
| Accents and encodingsUTF-8, UTF-16, Windows-1252, Mac Roman, EBCDIC … | ZürichA wrong guess at the encoding garbles every accent. | Zürich133 character sets detected and written back as they came. |
| The file's own dialectseparator, quotes, line endings, byte-order mark | rewrittenSaved in the spreadsheet's own separator, quoting and line endings. | ; CRLF BOMKept, and changed only if you change it. |
Comment lines# exported 2026-09-01 |
row 1Turned into data, or dropped. | # keptRemembered, and written back where they were. |
| A character the encoding cannot holda € typed into a Latin-1 file | ?Quietly saved as a question mark. | refusedThe save stops and says which character, in which cell. |
Spreadsheet behaviour shown is Microsoft Excel's default import on US settings; recent versions of Microsoft 365 let you switch some of these conversions off. How to stop Excel changing your data.
A grid that feels like the Mac, and knows what a data file is.
Native Swift and AppKit, light and dark, tabs for every file, and a keyboard shortcut for nearly everything. Open a file and the app tells you what it found — and what it had to guess.
- 1
The dialect, shown
Separator, quotes, encoding and line endings are detected, named, and yours to correct. Anything guessed says how sure it was.
- 2
A filter on every heading
A column's values, most common first, with counts. Tick to keep. ⇧-click headings to sort by several columns.
- 3
The status bar adds up
Count, sum, average, minimum and maximum of any selection — each one a click away from the clipboard.
- 4
Flags that stay put
⌥-click a row number to flag it. Flags survive sorting, filtering and inserting — a selection cannot.
- 5
Every file in a tab
A CSV, a workbook and a Parquet file side by side; ⇧⌘P finds any of the app's commands by a few letters.
Everything a table of data needs. Nothing a CSV cannot hold.
No cell colours, no merged cells, no formulas that would never survive the save. Instead, the tools people actually reach for when a file arrives from somewhere else.
Editing
- Type over a cell, with the column's own values offered as you type
- Fill with a series: numbers, dates, working days, your own lists — and
007,008 - Several cursors: one change made in every selected cell
- Paste from history; a table from a web page arrives in its own cells
- Undo for everything, and a history you can click into
Find, filter, sort
- Regular expressions with a preview before Replace All
- Find and replace in every file of a folder, a
.bakof each first - Hundreds of replacement pairs from a table, in one step
- Filter as you type, from a cell, or by a pasted list of values
- Sort by several columns, text the way your language reads it
Clean-up
- Remove duplicates judged on the columns that matter
- Values that look alike — Zurich, Zürich, ZURICH — merged when you tick them
Zürichput back toZürich, with the changes shown first- Rewrite dates between ISO, day-first, US and Excel serials
- Convert
1'234.50↔1.234,50↔1,234.50
Analysis
- SQL across every open file, MySQL-flavoured
- Charts with trend lines and their equation, saved as SVG
- Pivots with subtotals, shares and running totals
- Statistics for every column; join two files with the misses counted
- Compare two files, down to the changed character
Automation
- Recipes: record the clean-up once, run it on next month's file
- JavaScript macros that land as one step of undo
- Send the table through any program —
awk,jq, Python - AppleScript, Shortcuts, and
icsv convertwith no window at all - Ask a web service about each row
Quality
- Rules for each column: required, unique, a range, a list, a pattern
- Rules suggested from the data itself
- Problems washed orange in the grid, one shortcut to the next
- Rules written as, and read from, a JSON Schema
- Lock a document against accidental changes
Ask your files questions in SQL.
Every open document is a table named after its file. Join a CSV to a workbook, save a query as a view, open the answer as a new document — without a database server, and without importing anything.
- MySQL-flavoured: backticks,
GROUP_CONCAT,DATE_FORMAT,REGEXPand MySQL's function library - Amounts written
1'234.50or987,25compare and add up as numbers - Paste a MySQL dump or script as it stands
- Read a file that is not open:
FROM "@file:/Exports/archive.csv"
When a click is not enough, write three lines.
Macros are plain JavaScript run over the selection or the whole table, in the vocabulary Tablecruncher uses. They run on a snapshot and land as one step of undo — a script that stops half way changes nothing.
- A searchable guide beside the editor; click a function to insert it
- Dates, numbers and text helpers that read
CHF 12.50and1.234,50 - Or hand the table to any program on standard input and read back what it writes
- AppleScript:
export table to "~/Desktop/sales.xlsx"
Much more than CSV.
Whatever the file is, it opens as a table — recognised by its bytes, not its name, so a workbook saved as
export.dat still opens as a workbook. Saving writes the same format back — over the file where the
table is all it holds, to a copy where it is not; Save As converts.
kinds of data it opens
Delimited text
Spreadsheets & documents
Structured data
Data engineering
Statistics & science
Mainframe, banking & contacts
formats it writes
Delimited text
Spreadsheets
Structured data
Databases
Data engineering
Statistics
Mainframe
Documents
Millions of rows, without the wait.
Enough rows to fill the window are read before it appears; the rest streams in while you scroll, edit and search. Values are held as UTF-8 bytes, so five million rows take 186 MB instead of 816 MB.
- 5.2 million rows on screen in well under a second
- Filtering, searching, statistics and sorting off the main thread
- Open only part of a huge file, or follow one as it grows
- Nothing is saved from a half-read file — ever
- No 1,048,576-row ceiling
One million rows × 7 columns
52 MB CSV · seconds, less is better
Measured on a release build on 20 September 2026, on the Mac the app is developed on. Your Mac may be faster or slower.
Built by people who have lost a file.
The one thing an editor of other people's data must never do is lose it. So every save keeps the version before it, and every edit is journalled until it is saved.
A copy before every save
What was on disk is kept aside for 30 days. Restore from Backup shows each version with a preview.
Recovery after a crash
Unsaved work is journalled a few seconds after each edit, and offered back — as a copy, never over your file.
Knows when a file changes
If Excel, a script or a sync client writes to an open file, a bar offers Reload or Keep Mine.
Undo for everything
Sorts, macros, bulk replacements and pasted blocks each come back with ⌘Z.
Never a silent question mark
A character the file's encoding cannot hold is refused, and the app says which one and where.
Locked when you need it
Lock a document and nothing edits it by accident — not typing, not pasting, not a bulk clean-up.
Against every one of them, Intact does more.
We looked for all 80 of Intact CSV Editor's features in the websites and documentation of eleven competitors — and checked every feature they list in return. Blue: what we did not find in theirs. Grey: what Intact CSV Editor does not have yet.
A Mac app, made carefully, by people you can call.
Intact CSV Editor is made by MarketVision AG, a web design and Apple support company in Zürich. It is built for one job: opening the files other programs get wrong, and handing them back untouched.
- Native. Swift and AppKit, about a quarter of a second to start
- Private. No account needed; your files are never uploaded
- Tested. More than 4,100 automated tests guard every reader and writer
- Answerable. A company in Zürich with a phone number
Questions people ask first.
Does Intact CSV Editor change my files?
Only where you change them. Open a file and save it without edits and you get the same bytes back — the same separator, quoting, encoding, byte-order mark and line endings. That is checked by automated tests for every preset, for Windows-1252 and UTF-16 files, for values with line breaks inside them and for a file of a million rows. When you do edit, the values you did not touch are written back exactly as they were.
Can it open Excel files?
Yes — .xlsx and .xlsm, the old .xls, the binary .xlsb and OpenDocument .ods, with a choice of sheets when a workbook has several. Saving an .xlsx puts the workbook back as itself: its other sheets, formats and charts are kept, and only the rows of the sheet you edited are replaced. More about workbooks.
How large a file can it open?
Millions of rows. A 325 MB file of 5.2 million rows is on screen in well under a second and fully read about eight seconds later, while you already scroll and search. The table is held in memory as compact UTF-8, so your Mac's memory is the limit rather than a row count: a file of a gigabyte — sixteen million rows — is held in about 1.6 GB and sorts in about five seconds. Opening large files.
Are my files uploaded anywhere?
No. Everything happens on your Mac. On its own the app goes online only to check its licence now and then, and for a small usage count you can turn off in Settings — a random number, the app and macOS versions, your region and language, never anything about a file. Everything else happens only when you ask: opening a file from a link, asking a web service about each row, signing in, checking for updates. Privacy in detail.
Does it work offline?
Yes. Files never need the network, and the licence is checked now and then and keeps working in between — on a train, on a plane, in a basement server room.
Which Macs does it run on?
Any Mac with macOS 14 Sonoma or later. It is a native Mac app written in Swift, so it looks and behaves like the rest of your Mac, in light and dark.
What does it cost?
You can try every feature free: seven days without an account, fourteen days once you sign in with a confirmed email address. No card is needed. When a trial ends, the app still opens, reads, sorts, filters, queries and exports your files; only editing and saving wait for a licence. Pricing.
Which languages does it speak?
English, German, French, Italian, Spanish, Portuguese, Dutch and Polish — menus, settings, inspector, sheets and the command palette.
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