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

It is commonly used to compare exported master data before and after an update, or to verify data consistency before and after a system migration. Even with large CSVs, you can immediately see which rows were added, removed, or changed, saving far more time than eyeballing raw text side by side.

Yes. Rows are matched using the value in the selected key column, so even if row order differs between the two files, rows with the same key are still compared correctly. If a key value appears more than once, the row that appears later takes precedence.

Yes. Comparison is based on a combined column list built from both headers, so columns are matched by name even if their order differs. A column that exists in only one file is treated as an empty value in the other when computing the diff.

No. All comparison logic runs entirely in your browser's JavaScript, and the content you enter or upload is never transmitted to any server, making it safe to use even with sensitive data.

Yes. Cell values are compared as exact strings, so differences in uppercase/lowercase or extra leading/trailing spaces are flagged as changes. If you want to ignore such formatting differences, normalize your data beforehand.
ツールくん

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.