Cleanroom your file stays on this computer

Home › CSV tools › Compare CSV files

Runs in your browser

Compare two CSV files

Last month's export against this month's, or a supplier list before and after their update. Name the column that identifies a row, such as an id or an email. You get back one file listing what was added, what disappeared and which rows changed.

Your file stays on this computer. There’s no upload button here, because there’s nowhere to send it. This tool runs inside the page you opened — like a calculator on a web page, it keeps working once it has loaded. How this works, and how to check it →

How to use it

  1. Add exactly two CSV files. The first is treated as the older one.
  2. Name the column that identifies a row, such as id or email. Leave it blank to compare whole rows instead.
  3. Click Compare and download the differences.

Questions

Is my file uploaded anywhere?

No. The whole tool is inside this page, so the work happens on your computer. There is no server to send it to. If you'd rather check than take our word for it: use the tool once, on a sample file, with the settings you want. Then turn off your wi-fi and do exactly the same thing again in that tab, without reloading. It still works, because everything it needs is already here.

Why name a column to match rows by?

Without one, an edited row shows up as one row removed and one row added. Name the column that identifies a row, such as an id or an email, and it can match the two up. Then you get "this row changed, and here is what changed" instead of just "these rows are new, these are gone".

What's in the output file?

One CSV with a status column reading added, removed or changed, a changed_columns column when you used a key, and then all the original columns so you can see the actual values. It opens straight into a spreadsheet for filtering.

What if the two files have different columns?

Both headers are used — the first file's order first, then any column that only exists in the second. A column added between exports appears in the report rather than being quietly ignored.

Does the row order matter?

No. Name a column to match on and a row is matched by that value wherever it sits. Without one, rows are matched on their whole contents, so reordering alone still won't register as a change.