CSV Diff Checker
Compare two CSV files and instantly see added rows, removed rows, and changed cells. Pick any column as the row key to match rows, view before/after values side by side, and compare CSVs with different column layouts. Everything runs in your browser.
Tips
- The row key column defaults to the first column, but if your data has an ID or primary-key column, select it instead — rows will still match correctly even if their order or count changes.
- If neither CSV has a header row, uncheck "Treat first line as header" so columns are compared using auto-generated names like col1, col2, and so on.
- The "Changed rows" section compares matching rows column by column and lists only the columns that differ, shown as "before to after" pairs.
- TSV (tab-separated) files work too — just switch the delimiter to "Tab" and paste your data as-is.
- Instead of uploading a file, you can paste a range copied directly from Excel or Google Sheets and it will compare just as well.
Frequently Asked Questions
Side Note — Why a text diff alone isn't enough for CSV files
Comparing two CSV files has traditionally meant lining up two spreadsheets by eye in Excel, or running a line-based text diff with a tool like Git. But because each CSV row packs multiple values together separated by commas, a line-based diff can only tell you that a row changed — not which specific column changed. This tool identifies differences at the cell level precisely to close that gap.
In enterprise systems, exporting database tables to CSV for comparison — often called data reconciliation — is a routine task. Verifying that data matches exactly before and after a migration, or checking that a monthly batch job produced the expected result, often involves thousands or even tens of thousands of rows. At that scale, matching rows mechanically by a key column becomes essential rather than optional.
Diff algorithms used by version control systems like Git (such as the Myers diff algorithm) excel at detecting line-level additions and removals, but they are not always ideal for CSV data where "the same row" may have just one or two column values changed. Matching rows by key first and then comparing cell by cell, as this tool does, is an approach purpose-built for tabular data.