Skip to content

Everything runs in your browser. We never see your spreadsheets. How we prove it →

Excel Compare — Diff Two Excel Files

Choose two workbooks. Every differing cell comes back with its sheet name and A1 address, without either file leaving your machine.

Original

Choose or drop the first workbook (.xlsx, .xlsm, .xls).

Changed

Choose or drop the second workbook to compare.

How two workbooks are matched, sheet by sheet

An .xlsx file is less a document than a ZIP archive: unzip one and you find a tree of XML parts — a part per worksheet, plus shared strings, styles and the workbook index. SheetJS unpacks that archive inside your tab and hands back a grid to walk. Sheets are paired by name, so a workbook whose tabs were dragged into a new order still lines up. Every populated cell is then checked at its A1 address, and that address holds two things: the value Excel stored when it last calculated, and optionally the formula behind it. B14 can read 4,200 on both sides while one figure was typed by hand and the other computes =SUM(B2:B13) — identical on screen, different in substance. Both are compared.

Results arrive as a per-sheet list giving the address, the previous content, the new content, and whether the edit landed in the value, the formula or both. Tabs that exist in only one workbook are called out rather than quietly skipped, usually the first thing worth checking when two totals disagree. Sweeping rewrites are bounded: the list stops after 5,000 cells on a single sheet, past which you are looking at a restructured model rather than an edit. Legacy .xls binaries parse as well, and the parser downloads only once you pick a file. If your figures already live in flat exports, CSV Compare matches rows on a key column instead of fixed addresses.

Spreadsheets that should never be uploaded

The workbooks people compare are rarely neutral: salary bands ahead of a review cycle, a customer list pulled out of the CRM, a financial model nobody outside the founding team has seen. None of that should transit a stranger's server for the sake of locating four changed cells. Your file is opened with the browser's own file reader and parsed here; it is never sent, never queued, never retained. Open your browser's network tab while you use this tool — you'll see no request carries your content. Here is how to verify that yourself, in about a minute.

Who compares workbooks here

  • An FP&A analyst closing the month sets last week's forecast beside the version the regional teams sent back. The formula column reveals that one branch replaced a linked reference with a hard-coded figure — a two-cell edit that would have skewed the roll-up silently.
  • An external auditor on a tie-out reconciles a client's revenue schedule against the copy filed a quarter earlier. Because tabs pair by name, an added Q4 Adjustments sheet is reported as new rather than knocking every later comparison out of alignment.
  • A payroll coordinator checks the bonus sheet the compensation committee approved against the file returned by department heads. That the file never leaves her laptop is the only reason the review is permitted at all.
  • A university grants administrator compares the budget attached to a proposal with the revised version the sponsor accepted, then quotes exact A1 addresses in the amendment letter instead of writing "the third table, fourth row down".

Frequently asked questions

Does my spreadsheet get uploaded?

No. The file is read through the browser's file API and parsed by JavaScript already sitting in the page. This site has no upload endpoint to send it to. Disconnect from the network after the page loads and the comparison still runs — the verification steps describe exactly what to watch for in DevTools.

How large a workbook can this handle?

Realistically a few tens of megabytes per side. The binding constraint is how much memory your browser grants one tab holding two decompressed workbooks plus the comparison. Separately, the change list caps at 5,000 cells per sheet; past that the rendering cost outweighs the reading value, though the summary counts still tell you the sheet was rewritten wholesale.

Are formulas compared, or only the numbers I see?

Both. Each cell is examined on its stored value and, where one exists, its formula string. A cell that switches from =B2*1.2 to the constant it produced is flagged as changed even though the display is identical — precisely the edit that quietly breaks a model once next month's inputs move.

What about charts, pivot tables and formatting?

Those are not compared. The scope is cell content — values, formulas, and which sheets exist. Chart definitions, pivot caches, conditional-formatting rules, column widths and fill colours are read past. When appearance is the thing under review, two screenshots run through Image Diff answer that question better.

Can I send someone a link to the comparison?

Not a link, no. Link sharing works by packing text into the URL fragment, and a workbook is a file you chose from disk — the page holds no copy it could encode. Send the exported summary or a screenshot instead. The flip side of that design is that nothing about the file survives closing the tab.