CSV Reconcile & Diff
A tool that matches two CSV files with headers, such as old and new customer lists or product masters, by a key column. Rows are classified as added, removed, or updated regardless of row order, and updated cells show their before and after values. The diff can be saved as CSV — all processed in your browser.
Enter a CSV with a header row on each side to see the rows matched by the key column here.
How to use
- Paste the old CSV on the left and the new CSV on the right, or load the files. The first line is treated as the header.
- Choose the "Key column" (such as an ID) used to match rows. You can choose from columns present on both sides.
- Added, removed, and updated rows are listed, and updated rows show the before and after values of changed cells.
- Use "Save diff as CSV" to save a CSV containing the change type, key, column, and before/after values.
About this tool
Comparing CSV files as text reports differences even when only the row order changes. CSV Reconcile matches rows by the value of a key column, so you see only rows that were actually added, removed, or updated.
CSV files with quotes, commas, and line breaks inside cells are supported. Keys and cell values are compared as strings, so leading zeros matter ("001" and "1" are different). If any key is duplicated or empty, the rows aren't matched ambiguously — the affected rows are listed instead.
If the column sets differ, columns found on only one side are listed explicitly and only the shared columns are compared. Composite keys and fuzzy matching are not supported. Your CSV files are never sent to a server.
Use id,name 1,Aki 2,Ren as the old CSV and id,name 2,Ren 1,Aoi 3,Mio as the new CSV, choosing id as the key. Record 1 has a name update, record 3 is added, and record 2 is unchanged despite the reordered rows.
Keys and cells use exact string comparisons, preserving whitespace and leading-zero differences. This suits lists whose identifiers must not be treated as numbers. Resolve duplicate keys before reconciliation; the original CSV is not sent to a server.
Frequently asked questions
What happens if keys are duplicated?
Since it's unclear which rows should be compared, matching is not performed. The duplicated keys and their record numbers are shown instead. Fix the data or choose another column with unique values as the key.
What is a record number?
It's the number of the CSV row (record), counting the header as 1. If cells contain line breaks, it may differ from the line number in a text editor.
Can I load CSV files created in Excel?
Yes, as long as the CSV is UTF-8. A leading BOM is removed automatically, and the saved CSV is written as UTF-8 with a BOM so Excel opens it correctly.