Compare Spreadsheets
Nothing leaves your browser — both files are read, compared, and exported locally in JavaScript.
Why compare spreadsheets cell by cell, not just diff the raw text
Diffchecker, TextCompare, and several of the other tools ranking for "spreadsheet compare" work by converting each file to text and running a line-by-line text diff — which means a single reordered column or a row that moved up one position can make an unchanged file look completely rewritten. xlCompare and Draftable are proper spreadsheet-aware tools, but they're paid desktop/SaaS products with a signup or license involved for anything beyond a quick look.
This tool reads both files as actual spreadsheet data — rows and named columns — and compares them cell by cell using a key column you choose (like an SKU, an ID, or an email address), so a row that moved position is still recognized as the same row, and only genuinely changed cells are flagged. If your two files don't have a reliable key column, position-based comparison (row 1 vs row 1, row 2 vs row 2, and so on) is available too.
How it works
Upload File A (the original) and File B (the updated version) as .xlsx or .csv — you can mix formats, comparing an Excel export against a CSV pull is fine. If a workbook has multiple sheets, pick which one to compare on each side. Choose a key column from File A's headers (matched by name against File B, so the two files don't need their columns in the same order), or leave it on row position if there's no natural key.
The result is split into three views: Added (rows present in B but not A), Removed (rows present in A but not B), and Changed (rows matched by key where at least one cell differs) — each changed cell shown as old value next to new value, so you can see exactly what moved, not just that something did. A summary line counts added, removed, changed, and unchanged rows before you dig into any detail.
What's included
Numeric values are compared numerically, not as text — so "10" and 10.0 are correctly treated as equal instead of showing up as a false change, which is a common false-positive in naive text diffs. The full diff exports as a 3-sheet .xlsx workbook (Added / Removed / Changed, each color-highlighted) or as a single flat .csv report if that's easier to pipe into another tool or paste into an email.
Files up to roughly 50MB per side are supported. Both files are read and compared entirely in your browser's JavaScript — no upload, which matters for anything with financial figures, client data, or inventory numbers in it.
Limitations, and when to reach for something else
This tool compares formula results and values as they appear in the cell, not the underlying formula text itself — if you specifically need to know that a formula changed even when its computed result didn't, a desktop tool built for formula auditing will serve you better. Very wide sheets (hundreds of columns) will still work but the on-screen preview gets harder to scan; the full diff is always in the exported report regardless.
If you're trying to get data INTO a spreadsheet rather than compare two existing ones, use the JSON to Excel or XML to Excel converters linked below instead.
Need a spreadsheet built to run your business, not just hold data?
These converters get your data into a spreadsheet. Our templates go further — dashboards, automations, and data validation built in, tested to the cent, in matching Excel and Google Sheets versions.
Frequently asked questions
Do my files get uploaded to a server?
No. Both files are read and compared using JavaScript running in your browser. Nothing is sent anywhere — you can verify this yourself by checking your browser's network tab while using the tool.
What if my two files don't have the same column order?
That's fine. The key column you pick is matched by its header name independently on each side, not by its position — so File A's "SKU" column being column 2 and File B's "SKU" being column 5 doesn't cause a mismatch.
What if there's no good key column at all?
Choose "Row position" instead of a key column. The tool then compares row 1 of File A to row 1 of File B, row 2 to row 2, and so on — useful for two exports you know are in the same order but want to double-check for cell-level differences.
Does it flag a number formatted differently as a change?
No. Values are normalized before comparing — "10", 10, and 10.0 are all treated as the same value, so formatting differences alone won't show up as false changes. Only genuinely different values are flagged.
Can I compare one sheet against a different sheet in the same workbook?
Yes — upload the same file as both File A and File B, then pick a different sheet on each side. That's a common way to check two months of the same tracker against each other.