CSV Compare Online - Diff Two CSV Files Side-by-Side
Updated
Compare two CSV files and highlight differences instantly. 100% client-side. Free online CSV comparison tool.
What it does with tricky input
Each row is an automated test: the tool's own code runs on the input before every release, and the release stops if the result changes. Error text is what Chrome prints; Firefox and Safari word some errors differently. More on how we test.
| Case | Input | Result |
|---|---|---|
| Windows against Unix line endings | InputLeft: a,b\r\n1,2Right: a,b\n1,2 | ResultNo differences |
| One cell changed | InputLeft: id,qty\n1,5\n2,7Right: id,qty\n1,5\n2,8 | ResultLine 3 changed: 2,7 → 2,8 |
| A row inserted in the middleRows after it are not marked as changed. | InputLeft: id\n1\n3Right: id\n1\n2\n3 | ResultLine 3 added on the right: 2 |
| Quoted against unquoted cellsQuotes a cell does not need are ignored. | InputLeft: id,name\n1,AdaRight: "id","name"\n"1","Ada" | ResultNo differences |
| Two rows swappedThe compare is line by line, so a moved row shows as added and removed. | InputLeft: id\n1\n2Right: id\n2\n1 | ResultLine 2 removed from the left: 1 Line 3 added on the right: 1 |
Key Features
- ✅ Side-by-side Diff
- ✅ Row Alignment
- ✅ Whole-row highlighting for changed lines
- ✅ Change Summary
How to Use
- Upload your "Original" CSV file in the first panel
- Upload your "Modified" CSV file in the second panel
- Click Compare to start the analysis
- Browse the highlighted differences side-by-side
- Scroll through the highlighted lines, or copy/download the plain-text diff report
Expert FAQ
- My two exports have rows in a different order but the same data — without an ID column, will that look like every row changed?
There's currently no way to specify an ID/key column at all — rows are always compared by raw line position, so a reordered-but-otherwise-identical dataset will show as widespread differences even though no value actually changed. If you need to compare two exports that may have reordered rows, sort both files by a common key column before pasting them in. - The columns are the same but in a different order in each file (id,name,email vs name,id,email) — does that register as a diff?
Yes — the comparison doesn't parse CSV into columns at all; it's a raw line-by-line text diff, so a column reorder changes the line's text and will show up as a difference even though no value actually changed. - One file has a price as 19.5 and the other has 19.50 — same value, different text. Flagged as different?
Yes, by default — comparison is text-based per cell, since CSV has no type information to tell the tool that a column is numeric versus an arbitrary string where "19.5" and "19.50" are meaningfully different (e.g. a part number or a string code). If your data is genuinely numeric and trailing-zero differences shouldn't count as changes, normalize the values (e.g. run both files through a formatter/script that standardizes decimal formatting) before comparing.
Technical Details
Comparing two CSV exports here is a line-by-line comparison: each row is treated as a line of text and compared with the row at the same position in the other file, and differing lines are highlighted side by side. That makes it quick for spotting edited values in two exports of the same query, where rows arrive in the same order. Because matching is by position, a column reorder, or a row inserted, deleted or moved before the end of the file, shifts every later line and shows up as a run of changes. When comparing two snapshots of the same table, sort both files the same way (by primary key, for example) and keep the same column order before comparing.