How to use
Load an Excel (.xlsx), CSV or TSV file as “Original (old)” and another as “Changed (new)”. Excel and CSV can be mixed.
For workbooks pick the sheet; if there is a title above the table, pick the header row (it is detected automatically).
Choose how to match rows: by a key column such as a product code (suggested automatically), or by row order for tables without an ID.
Optionally treat full-/half-width, spaces, “1,000” vs 1000 and different date notations as equal. Map renamed columns under “Column mapping”.
Check the counts, then review differences with the Changed / Added / Removed tabs or the “Next difference” button.
Download the Excel difference report or a CSV.
What it does
Key-column matching, independent of row order
Rows are matched by a key such as a product code or employee number, so sorting or inserted rows do not break the comparison. A unique column is suggested automatically, and several columns can form a combined key (e.g. store + product).
Detects inserted and deleted rows without a key
When comparing by row order, identical rows are used as anchors (like a text diff), so one inserted row does not turn every following row into a change. A strict “same row number” mode is also available.
Ignores differences that are only cosmetic
Full-/half-width characters, leading/trailing or repeated spaces, upper/lower case, “1,000”, “¥1,000” or “1000” versus the number 1000, and “2026/1/4”, Japanese era dates or Excel dates can each be treated as equal — so comparing an Excel file with a CSV does not flood you with false differences.
Handles renamed and added columns
Columns are matched by header name, ignoring width and spacing. Renamed columns can be mapped by hand, columns such as “updated at” can be excluded, and columns that exist on one side only are listed.
Colour-coded Excel report
Changed cells are yellow, added rows green and removed rows red, with the old value kept as a cell note. The workbook also has “Changed cells”, “Duplicate keys” and “Summary” sheets; CSV export (including Shift_JIS) is available too.
Runs in your browser, ready for 100k rows
The comparison runs in a Web Worker so the page stays responsive, and the result grid renders only visible rows, so tables with tens of thousands of rows stay easy to scroll. Files are never uploaded.
Use cases
- Compare last month’s and this month’s product or price list and see only the items that changed
- Find the differences between a CSV exported from a business system and an Excel file edited by hand
- List joiners (added), leavers (removed) and changes in an employee or customer list
- Check what a client changed in an Excel file they sent back
- Reconcile two tables and keep the result as a report without building VLOOKUP or COUNTIF formulas
Supported formats
Input
Output
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Match by key columns (combined keys) and report duplicate keys | Supported | — |
| Detect inserted/deleted rows without a key | Supported | Heavily changed regions are paired by position |
| Ignore width, spaces, case, number and date notation (incl. Japanese eras) | Supported | — |
| Map renamed columns, exclude columns | Supported | — |
| Compare Excel with CSV | Supported | CSV encoding detected automatically |
| Colour-coded Excel report and CSV export | Supported | — |
| Compare all sheets at once | Partial | One sheet pair at a time |
| Character-level highlighting inside a cell | Partial | Whole cell shown as “old → new” |
| Compare formatting, formulas themselves or comments | Not supported | Formulas are compared by their values |
| Fuzzy matching of name variants (“Inc.” vs “Incorporated”) | Not supported | — |
| Legacy Excel (.xls) | Not supported | Re-save as .xlsx in Excel first |
Limits & notes
- Up to 100 MB and 3 million cells per file, and up to 300,000 rows per file for the comparison.
- Only cell values are compared — not formatting, formulas, comments, merged cells or hidden state (formulas are compared by their calculated values).
- The on-screen result shows up to 400 columns (downloads contain all columns). Old values are added as notes for up to 10,000 changed cells in the report; all of them are listed on the “Changed cells” sheet.
- Up to 1,000 duplicate keys are listed.
- Numbers are compared at Excel’s 15-digit precision (0.1+0.2 equals 0.3).
Privacy & safety
Reading, comparing and building the report all happen in your browser. File contents are never sent to or stored on a server.
FAQ
How can I quickly see the differences between two Excel files?
Can I compare files whose rows are in a different order?
Will comparing Excel with CSV show every number or date as changed?
Can I ignore full-/half-width and space differences?
Can I save the comparison result?
Can it compare cell colours or formulas?
Are my files uploaded?
Related tools
Excel Cleanup
Tick what to fix and clean up spaces, character widths, dates and numbers across a whole Excel or CSV file at once. Changed cells are highlighted, and you can save as Excel or CSV.
Excel Deduplicate
Find duplicate rows in an Excel or CSV file by the columns you choose, ignoring the variations you choose, then remove them or merge each group into one row. Review every group, change which row survives, and save as Excel or CSV.
Excel Merge
Combine sheets from several Excel or CSV files: stack their rows into one table, or keep them as separate sheets in one workbook. Columns are aligned by header name automatically.
CSV Encoding Fix
Convert CSV files that show garbled text in Excel to UTF-8 with BOM or Shift_JIS, with automatic encoding detection. Mojibake that was already saved, such as “日本語”, can usually be restored too.
CSV Studio
Open CSV files that are slow or garbled in Excel and view, search and edit them right away in your browser. Combine, split and save as CSV (UTF-8 with BOM, Shift_JIS), Excel or JSON on one screen.
CSV, JSON, XML & Excel Converter
Convert between CSV, TSV, JSON, JSON Lines, XML and Excel (.xlsx) by pasting or opening a file. Values stay as text by default, so zero-padded postal codes, phone numbers and long IDs are never changed. Everything runs in your browser; your data is not uploaded.
Last updated: