OnSumoTools

CSV Diff Viewer

This tool compares two CSV files side by side and highlights every difference between them. Paste two CSV datasets, and the tool shows you which rows were added, removed, or changed, with cell-level highlighting so you can see exactly what moved. No data is uploaded to a server. Your spreadsheets, exports, and internal records stay on your device. The tool is free, requires no account, and works offline after the page loads.

CSV A (baseline)

CSV B (new version)

Compare columns

Added 1Removed 1Changed 1Unchanged 1
StatusKeyidnamestatus
changed22Robertactive
removed33Carapending
added44Dannew

CSV comparison runs in your browser. Files are read locally and are not uploaded to a server.

How does the CSV Diff Viewer work step by step?

The CSV diff viewer compares two CSV files and categorizes each row as added, removed, modified, or unchanged. You designate one or more columns as the join key -- the column(s) that uniquely identify a row across both files (typically an ID or a composite natural key). The tool performs a full outer join on the key: rows present in File A but not File B are deleted; rows in File B but not File A are added; rows in both files where any non-key column differs are modified, with changed cells highlighted. Rows identical in both files are unchanged. A summary shows counts by change type. Output can be filtered to show only changed rows. Key assumption: join key values must be unique within each file. If the same key appears more than once in either file (duplicate keys), the comparison is undefined and the tool flags the duplication before proceeding. Edge case: column order differences between the two files do not affect the comparison -- columns are matched by name, not position. If a column exists in File A but not File B (or vice versa), the tool treats it as a schema change: all rows that would have a value for the missing column are shown with that column as an addition or deletion, clearly labeled as a structural difference rather than a data difference.

What does a typical CSV Diff Viewer result look like?

You receive a nightly customer export and need to see who was added or updated. Match on email, filter to changes only, and download the diff CSV for your ticket.

Frequently asked questions

  • Is my CSV data sent to a server?

    No. Both files are parsed and compared entirely in your browser using JavaScript. There is no upload, no network request, and no server-side processing. You can confirm this with your browser's DevTools Network tab.

  • Can I compare files with different column orders?

    Yes, if you select a key column. The tool matches columns by header name, not by position. If File A has columns in the order \\\\\\\"name, email, phone\\\\\\\" and File B has \\\\\\\"email, name, phone,\\\\\\\" the tool still compares the correct columns against each other as long as the header names match.

  • What happens if the two files have different numbers of columns?

    The tool detects added and removed columns. A column that appears in File B but not in File A is highlighted as a new column. A column in File A that is missing from File B is marked as removed. Cell comparisons only apply to columns that exist in both files.

  • Does it handle large files?

    Files up to 10 MB (roughly 50,000 rows) compare in under three seconds in modern browsers. Very large files may cause the browser to slow down because the entire diff is rendered as an HTML table. For files over 50 MB, consider a command-line diff tool like csvdiff or diff with sorted inputs.

  • Can I export the diff results?

    Yes. You can download the diff as a CSV file with an added \\\\\\\"status\\\\\\\" column indicating whether each row was added, removed, modified, or unchanged. You can also copy the diff summary to your clipboard.

  • What if my CSV files use different delimiters?

    Each file's delimiter is detected independently. If File A uses commas and File B uses semicolons, the tool handles both correctly. You can also override the delimiter for each file manually.

What changed between these two files?

You get an updated export from a vendor. Or a teammate sends back an edited sheet. The question is always the same: what's different? Scrolling two spreadsheets side by side is a bad way to find out.

The diff viewer lines up file A against file B and colors every difference. Added rows, removed rows and changed rows each get their own look, so you can scan the result in seconds.

Match rows by a key column

A diff is only useful if it compares the right rows. If you compare by position, one inserted row at the top makes every row below it look changed. That's noise.

Pick a key column instead, such as an ID, SKU or email. The tool pairs rows by that value. A row present only in B is added. A row present only in A is removed. A matched row with different cells is changed, and the exact cells get highlighted.

Column order doesn't have to be the same in both files. Columns are matched by name, so a file that was re-exported with a shuffled layout still compares correctly.

Reading the colors

Green rows were added. Red rows were removed. Changed rows show the old and new values, with the changed cells marked. Filters let you hide everything except one kind of change, which is great when a file has thousands of unchanged rows and ten that matter.

  • Use the added filter to see new customers or new products
  • Use the removed filter to catch records that vanished
  • Use the changed filter to check price or status edits

Different columns and delimiters

If the two files don't have the same columns, the tool shows which ones exist in only one file. You'll want to decide whether that's intentional before trusting the rest of the diff.

Delimiters can differ too. One file may use commas and the other semicolons, which happens a lot with European exports. Set each side correctly and they compare fine.

Export the result

Download the diff as a CSV and hand it to someone, or load it into your own process. It's a clean record of what changed and when you checked.

Everything runs in your browser. Your files aren't sent anywhere, which matters when the data is customer or financial. Very large files are limited by your device, so trim columns you don't need if things get slow.

When to use it

Before importing an updated price list. After a data migration, to confirm nothing was lost. When two people edited the same sheet and you need to merge their work. Anywhere you'd otherwise squint at two windows.