Compare CSV files online

A free CSV diff tool built for business data. Upload two CSV files, choose how rows should match, preview added, removed, changed, and unchanged rows, then download the result.

Original CSV
Updated CSV
Upload two CSV files, choose how rows should be matched, then preview the diff here. Everything runs locally in your browser.
CSV Diff

Diff preview

Upload two CSV files to preview the diff.

Preview the CSV diff here
Upload two CSV files, choose how rows should match, and this table will show added, removed, changed, and unchanged rows.

CSV diff online for real business data

This CSV comparison tool is built for old and new exports, CRM snapshots, product catalogs, and lead lists. Instead of showing a noisy line-by-line text diff, it compares rows as data, helps you match rows by id or email, and highlights which cells actually changed.

Example: compare two CSV exports by id

This is the common workflow for comparing an earlier export with a newer one. One row stays unchanged, one row changes, one disappears, and one new row appears.

Original CSV
id,email,company,status,amount
1,anna@north.io,Northwind,lead,120
2,bob@atlas.io,Atlas,customer,250
3,carla@orbit.io,Orbit,lead,95
Updated CSV
id,email,company,status,amount
1,anna@north.io,Northwind,lead,120
2,bob@atlas.io,Atlas,customer,320
4,david@nova.io,Nova,lead,180
Diff Result
status,key,changed_columns_count,summary
unchanged,1,0,No changes.
changed,2,1,Updated amount.
removed,3,0,Row exists only in the original CSV.
added,4,0,New row found in the updated CSV.

Compare CSV rows by key column

The best way to compare two CSV files online is usually to match rows by a stable key such as `id`, `email`, `sku`, or `uuid`. The tool suggests a likely key column automatically when it finds one, but you can override it, choose multiple key columns, or fall back to full-row comparison.

This is especially useful when files contain the same records in a different order, or when columns were rearranged between exports.

Added, removed, changed, and unchanged rows

The diff result separates rows into four practical statuses: added, removed, changed, and unchanged. For changed rows, the preview shows which columns changed and the old value versus the new value.

That makes this tool more useful than a simple text diff for CSV files, especially when you need to explain what changed to non-technical teams.

Advanced CSV diff settings for more precise comparison

Most online CSV diff tools stop at a basic compare button. This one gives you more control when you need to compare CSV files by key column, tune how rows are joined, ignore formatting-only differences, or choose the exact diff output you want to download.

Join type: full outer join, inner join, or left join

Join type defines which rows appear in the final CSV diff. Full outer join is the default because it shows everything: matched rows, added rows, and removed rows. Inner join keeps only rows that exist in both files. Left join keeps the original CSV as the base and is useful when you mainly want to see which original records changed or disappeared.

That is especially helpful for searches like “full outer join CSV compare” or “compare old and new CSV file with removed rows”, because the join mode changes the meaning of the diff.

Key column matching for ids, emails, SKUs, and multi-key comparison

If you want to compare CSV by id, email, SKU, uuid, or another identifier, the key column setting is what makes the result reliable. Instead of matching rows by line order, the tool matches records by the selected key so column reordering or row movement does not create false differences.

You can also use multiple key columns when one field is not unique enough. That makes the tool useful for more advanced searches such as “compare CSV by key column” or “compare CSV files by multiple columns”.

Comparison settings to ignore whitespace, case, and null-like values

Real exports often differ only because of formatting. One file may contain extra spaces, uppercase text, or placeholder values like `null`, `N/A`, or empty strings. The comparison settings let you ignore whitespace differences, ignore case, and treat empty and null-like values as equal before the diff is computed.

These options matter when users search for a more advanced CSV comparison tool instead of a naive text diff. They help reduce noise and focus the preview on actual data changes.

Output format: summary CSV, changed rows CSV, or full diff CSV

Some workflows only need a compact summary with row status and keys. Others need a CSV of changed rows only, or a full diff CSV with original and updated values side by side. The output settings let you choose that format, select the separator, and decide whether unchanged rows should stay in the exported file.

This makes the tool more flexible than many free CSV diff tools online, because the exported result can be tailored for audits, business reviews, reconciliation workflows, or downstream spreadsheet work.

Compare large CSV files online

The tool is designed to compare large CSV files online without trying to render every row in the browser. It computes full summary counts, limits the preview to a manageable sample, and still lets you download the full diff result afterward.

If you need a free CSV diff tool for big exports, that large-file workflow is the point of this page.

Private browser-based processing

CSV files are parsed and compared in your browser. That matters when you are working with customer exports, revenue snapshots, inventory data, or any other sensitive spreadsheet that should stay on your machine.

It also makes the CSV diff online experience faster because there is no server-side upload step before you can inspect the result.

FAQ

How do I compare two CSV files online?

Upload the original CSV and the updated CSV, choose how rows should be matched, review the diff preview, then download the summary or full diff CSV. Matching by id, email, or another stable key usually gives the clearest result.

Can I compare CSV files by id?

Yes. The tool is built to compare CSV rows by key column. It can auto-suggest columns like id, email, sku, key, or uuid, and you can also choose multiple key columns when one column alone is not enough.

What if the columns are reordered?

The default behavior compares columns by column name, not just by position. That means reordered columns do not create false differences when the same named columns exist in both files.

What does join type mean in a CSV diff?

Join type controls which rows are included in the result. Full outer join includes matched, added, and removed rows. Inner join includes only rows found in both files. Left join keeps the original CSV as the base and excludes rows that exist only in the updated file.

Can I ignore whitespace or case differences?

Yes. The comparison settings can ignore whitespace, ignore case, and treat empty or null-like values as equal. That helps when you want to find real data changes instead of formatting-only noise.

What output formats are available?

You can export a summary CSV, a changed rows CSV, or a full diff CSV. The output settings also let you choose the separator and whether unchanged rows should be included.

Can this compare large CSV files?

Yes. The preview stays limited so the page remains responsive, while the full diff is still computed for counts and download. That makes it suitable for larger exports than a simple DOM-heavy viewer would handle comfortably.

Is this CSV comparison tool free?

Yes. This page is a free online CSV diff tool. You can compare CSV files online, inspect the differences, and download the result without needing a desktop install.