To compare two Excel files, open the original below, then the new version, and hit Compare. The tool reads both workbooks with the SheetJS engine inside your browser, walks every sheet they share, and lists each differing cell with its A1 reference, the old value, and the new — classified as changed, added, or removed — plus sheets that exist in only one file. On our v1/v2 order-book test pair it found 14 differences in one sheet and zero in another: 9 changed cells (price 7.25→7.85, quantity 500→650, one fully replaced line) and 5 added cells (a new row 7), plus a whole Notes sheet present only in v2. It reads .xlsx, .xlsm, .xlsb, .xls, .ods, and .csv, and exports the full difference list as CSV. Payroll, customer lists, and financial models never touch a server.

Choose the Two Files

Both files are read in your browser — nothing is uploaded, ever.
Advertisement

What the Diff Sees — and What It Doesn't

ChangeDetected?How it shows up
Cell value changedYesOne row: A1 ref, old value, new value
Row appended at the bottomYesEvery cell of the new row listed as added
Row fully replacedYesEvery cell in the row flagged changed
Row inserted or deleted mid-sheetYesCascade: subsequent cells differ by the shift (signature: every column changed from one row down)
Sheet added or removedYesReported above the per-sheet tables
Formula changed, result unchangedNoDiffs run on stored values; identical results match
Formatting, colors, column widthsNoNo value representation — not compared
Comments, charts, pivot cachesNoSame: content without a cell value

The value-only design is deliberate: a data diff answers "what will change downstream," which is what review and reconciliation need. Excel's own Spreadsheet Compare (Professional Plus only) covers formatting too, at the price of a desktop install and, for the online tools, an upload.

How the Comparison Works

Both files are parsed by SheetJS Community Edition, the open-source spreadsheet engine, running as JavaScript in this tab. For each sheet name present in both files, every cell is compared position to position — A1 against A1 through the union of both used ranges. Where both cells hold values and they differ, the cell is changed; where only the new file has a value, added; where only the original had one, removed. Sheet names missing from either side are listed separately.

How to use it

A worked example

Two versions of an order book. File A (orders-v1.xlsx, 17,999 bytes) holds five line items and a Vendors sheet. File B (orders-v2.xlsx, 19,174 bytes) updates a price — D2 from 7.25 to 7.85, with the line total in E2 moving 870 → 942 — bumps a quantity — C5 from 500 to 650, total E5 from 55 to 71.5 — replaces row 6 entirely (PLT-003 shim plates become SCR-09 wood screws: A6–E6 all change) and appends a new line 7 (A7–E7 added). The comparison reports: Orders sheet, 14 cell differences — 9 changed, 5 added — with rows 6→7 in both files; Vendors sheet, 0 differences across its 3 rows; and one sheet, Notes, that exists only in File B. Total: 9 changed, 5 added, 0 removed, 1 sheet added. Compare File A against itself and every count is zero — the baseline that makes a diff trustworthy.

Frequently Asked Questions

How do I compare two Excel files for differences?

Open both files in a cell-level diff tool: it reads each workbook, walks every sheet both files share, and reports each differing cell with its A1 reference, the old value, and the new — classified as changed (both had values), added (only the new file), or removed (only the old). It also flags sheets that exist in just one of the two files. In testing, a v1/v2 order sheet pair produced 14 differences: 9 changed cells (a price update, a quantity update, and one fully replaced line) and 5 added cells (a new appended row). This tool does all of it in your browser; nothing is uploaded.

Is there a free way to compare Excel files without uploading them?

Yes — this one. Nearly every 'compare Excel files online' result uploads both workbooks to a server, which is a real problem for payroll, customer lists, and financial models. A browser-based diff runs the spreadsheet engine (SheetJS) on your own machine: files are read into memory, compared, and reported with zero network traffic during the comparison. You can confirm it in your browser's network tab. Microsoft's own Spreadsheet Compare exists but ships only with Office Professional Plus, not standard installs.

Does the diff catch formula changes?

Only when they change the result. Spreadsheets store each formula's last computed value, and comparisons run on values: a cell holding =SUM(B1:B2) that still shows 3,500 matches the same number typed literally. If someone rewires a formula so the displayed result changes, the diff catches the value change; if a formula changes but its output doesn't, the cells look identical — which is usually what you want in a data diff, and worth knowing in an audit.

Why does inserting or deleting a row show many changes?

Because a cell diff compares position to position: A1 to A1, A2 to A2. Insert a row in the middle of a sheet and every subsequent row shifts down by one, so each of those cells differs from its counterpart even though the records themselves are unchanged. Appending rows at the bottom report cleanly as added cells; deletions similarly surface as removed cells or a shifted cascade. The A1 references tell you exactly where to look, and 'row 6 fully changed across all columns' is the classic signature of a replaced or shifted row.

What file formats can I compare?

Anything the SheetJS engine reads: .xlsx, .xlsm, .xlsb, the legacy .xls, .ods, .fods, and plain .csv/.txt — and you can mix them, comparing today's .xlsx export against yesterday's .csv dump. CSV files compare as a single sheet. What the engine reads is stored values; cell formatting, colors, comments, charts, and pivot tables have no value representation and are not compared.

Can I export the list of differences?

Yes. After a comparison, the tool offers a CSV download of every difference: one row per cell with columns for sheet, A1 reference, change type, old value, and new value — ready to filter, pivot, or attach to a review. The on-page table caps how much it displays at once; the export always contains everything found.

Advertisement