About the Excel Diff
Spreadsheets get emailed around, edited by several people, and returned with no record of what changed. Somewhere in 4,000 rows a value moved, and the file gives you no way to find it.
This tool opens two workbooks in your browser and compares them cell by cell, sheet by sheet, reporting added rows, removed rows, and individual changed cells with both the old and the new value.
When you'd use it
- Finding what a reviewer changed in a spreadsheet they returned without comments.
- Comparing this month's data export against last month's.
- Verifying that a data migration or transformation preserved everything it should have.
- Reconciling two versions of a pricing sheet, budget, or inventory list.
- Checking a CSV export against the source spreadsheet it came from.
How sheets are matched
Sheets are matched by name across the two workbooks. A sheet present in only one file is reported as added or removed in its entirety rather than compared against an unrelated sheet.
This means renaming a tab reads as one sheet removed and another added. That is the honest result — the tool has no way to know a rename happened rather than a replacement — but it is worth knowing before you conclude that everything changed.
Values, not formulas
The comparison uses computed cell values, which is what the .xlsx format stores alongside each formula. If a formula changed but produces the same result, the cell is reported as unchanged. If a formula is unchanged but its inputs moved, the cell is reported as changed.
This is the right default for the common question — did the data change — but it does mean this tool will not catch a formula rewrite that happens to yield identical numbers.
Formatting and types
Dates in Excel are stored as serial numbers counting days from an epoch, and formatting decides how they display. Two cells showing 2026-03-01 and 01/03/2026 are the same value with different formats, and the comparison correctly treats them as unchanged.
The reverse trap is more common: a number stored as text is not equal to the same number stored as a number. If a whole column reads as changed after a CSV round trip, the type is usually why — CSV has no types, so everything comes back as text.
Rows that shifted
Rows are compared by position. Inserting a row near the top of a sheet shifts every row below it, and a positional comparison will report all of them as changed even though the content merely moved down one.
If you see a change count close to the row count, this is almost certainly the cause. Sorting both sheets by a stable key column before comparing gives a diff that reflects real edits.
Frequently asked questions
- Which file types can it read?
- .xlsx, .xls, and .csv. CSV files are treated as a single sheet with no type information, since the format carries none.
- Is my spreadsheet uploaded?
- No. The file is parsed in your browser. This matters for spreadsheets, which routinely contain salary data, customer lists, and financial figures that should not be handed to a third-party service.
- Does it compare charts, images, or conditional formatting?
- No. The comparison covers cell values and sheet structure. Embedded objects and formatting rules are outside its scope.
- How big a workbook can it handle?
- Tens of thousands of cells compare quickly. Very large workbooks — hundreds of thousands of populated cells — will be slow to parse and to render, because both files are held in memory at once.
- Why is every cell in a column showing as changed?
- Usually a type difference, most often numbers that became text in one of the files. Check whether one side went through a CSV export.