The CSV editor for Mac that keeps your data intact.
Open CSV, Excel, JSON, Parquet, SPSS and eleven 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.
- 7 days free, 14 with an account
- No card needed
- 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ürichOver 80 encodings 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 handle that continues numbers, dates and
Item 1,Item 2 - Drag rows and columns; select several blocks at once
- Paste transposed; type one value into every selected cell
- Undo for everything, sorts and bulk replacements included
Find, filter, sort
- Regular expressions with a preview before Replace All
- Filter as you type, or with conditions: between, at least, begins with
- Sort by several columns; a third click restores the file's order
- Saved filters, offered in every window
- Flag rows by hand and walk through them
Clean-up
- Remove duplicates judged on the columns that matter
- Trim, eleven kinds of case, split and join cells
- Rewrite dates between ISO, day-first, US and Excel serials
- Convert
1'234.50↔1.234,50↔1,234.50 - Show tabs, line breaks and invisible spaces
Analysis
- SQL across every open file, MySQL-flavoured
- Summarise into a pivot with subtotals
- Statistics for every column, with quantiles
- Look values up in another table
- Compare two files, down to the changed character
Automation
- JavaScript macros that land as one step of undo
- Send the table through any program —
awk,jq, Python - AppleScript and Shortcuts
- The
icsvcommand line andintact-csv://links - Saved export formats, one click away
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 kept beside the file in a small sidecar
- 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; Save As converts.
kinds of data it opens
Delimited text
Spreadsheets & documents
Data engineering
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 and statistics off the main thread
- 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 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 57 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 3,400 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 OpenDocument .ods, including shared strings, dates and workbooks with several sheets. Saving writes a workbook again, not a CSV with the wrong ending. 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. Opening large files.
Are my files uploaded anywhere?
No. Everything happens on your Mac. The app only talks to the network when you ask it to — opening a file from a link, signing in, checking for updates (off unless you switch it on) — with one exception: a small usage count (a random number, the app and macOS versions, your region and language, never anything about a file) that you can turn off in Settings. 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. 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.
Every feature for seven days, fourteen with a free account. No card, and your files never leave your Mac.
macOS 14 Sonoma or later · See pricing