Upload your original spreadsheet on the left and the updated version on the right, then click Find Differences. Changed cells are highlighted in yellow with the old value shown in parentheses. Added rows are green, removed rows are red. Works with .xlsx, .xls, .csv, .ods, and more. Nothing is ever uploaded to a server - all processing runs in your browser.
How to use this tool
Drop your original (older) spreadsheet into the left panel and the revised (newer) version into the right panel. Then click "Find Differences." The diff output appears below with every change color-coded by type.
If either file contains multiple sheets, tabs appear below the file preview so you can select which sheet to compare. Each side selects its sheet independently - useful when sheets have been renamed or reordered between file versions.
The Swap button exchanges the contents of both panels without re-uploading. The Sample button loads a short example spreadsheet if you want to see how the output looks before using your own files. The Copy Diff button copies the full result to your clipboard as tab-separated text.
Reading the color coding
Once you click Find Differences, every row in the output is classified into one of four states:
| Color | Meaning | Detail |
|---|---|---|
| Yellow | Changed row | At least one cell in this row has a different value. The old value is shown in parentheses next to the new value. |
| Green | Added row | This row exists in the changed (right) file but not in the original (left). It was added. |
| Red | Removed row | This row exists in the original (left) file but not in the changed (right). It was deleted. |
| None | Unchanged row | Every cell in this row is identical in both files. Shown without color to keep focus on what changed. |
The summary bar above the diff table shows the total count of changed rows, added rows, removed rows, and unchanged rows. Within a changed row, only the cells that differ are highlighted in yellow - cells that stayed the same are not marked.
Supported formats
The tool accepts all common spreadsheet and tabular data formats. You can also compare files of different formats - for example, an .xlsx against a .csv.
| Format | Extension | Notes |
|---|---|---|
| Excel Workbook | .xlsx | Modern Excel (Office 2007 and later). Most common format for spreadsheet comparison. |
| Excel 97-2003 | .xls | Legacy binary format. Still widely used in older enterprise systems. |
| Excel Macro-Enabled | .xlsm | Excel workbook with macros. Macros are ignored; cell data is compared normally. |
| Excel Binary | .xlsb | Compact binary format used for large workbooks. Faster to parse than .xlsx. |
| CSV | .csv | Comma-separated values. Most common format for data exports from databases and web apps. |
| Tab-delimited text | .txt | Tab-separated values. Common export format from legacy software and some databases. |
| DIF | .dif | Data Interchange Format. Used by some older spreadsheet and financial applications. |
| OpenDocument | .ods | Open standard used by LibreOffice Calc and Apache OpenOffice Calc. |
Use cases
Financial reporting and reconciliation
Compare monthly or quarterly financial reports between the draft version and the final signed-off version. Upload both files and the diff immediately shows every cell that changed - useful for catching last-minute edits, formula overrides, or figures that were manually adjusted after the original was shared. Also useful when reconciling two independently prepared reports that should agree on every number.
Data migration verification
After migrating data between systems - for example from an old CRM to a new one, or from one database to another - export the source data and the migrated data as CSV or Excel and compare them. The diff confirms that every row transferred correctly and no values were dropped, truncated, or reformatted differently. This is far more reliable than spot-checking a sample.
Pricing sheet and inventory updates
Track exactly which rows and cells changed between two versions of a pricing list, product catalog, or inventory spreadsheet. When a supplier sends an updated price file, compare it against the previous version to see which SKUs changed price, which were added, and which were removed - without reading both files manually.
QA and output testing
Compare the expected output of a data pipeline or application against the actual output exported as CSV. The cell-level diff immediately shows where results diverge from what is expected - which rows, which columns, and what the values should be versus what they are. This is especially useful for regression testing when a code change could affect calculated outputs.
Research and survey data
Compare datasets across experiment iterations, survey rounds, or data cleaning passes. Uploading before-and-after versions of a dataset shows exactly which rows were modified during cleaning, which were added from a new data collection batch, and which were excluded. This creates an auditable record of data changes.
Compliance and audit trails
Many regulatory frameworks require organizations to demonstrate that data was not altered after a certain point, or to document what changed and when. Comparing two versions of a spreadsheet with this tool produces a clear, copy-able diff that documents which cells, rows, and values changed between two file versions.
How the comparison works
Both files are parsed entirely in your browser using SheetJS, a widely used open-source spreadsheet parsing library. No data is sent to any server at any point. Here is the comparison process step by step:
- Each file is read and the selected sheet is extracted into an internal row/column grid.
- Both grids are normalized to the same dimensions - missing cells are treated as empty strings.
- Rows are matched by position: row 1 from the original is compared to row 1 from the changed file.
- Within each matched row pair, every cell is compared individually by its string representation.
- A row is classified as unchanged, changed, added, or removed based on the cell comparison results.
- The diff table is rendered with color coding and the summary counts are updated.
Values are compared as strings after normalization, so a cell containing the number 1.5 and a cell containing the text "1.5" will match. Formatting differences (bold, background color, font size) are not compared - only cell values.
Row matching and limitations
This tool uses positional row matching: row N in the original is always compared to row N in the changed file. This is the simplest and most predictable approach, but it has a specific implication you should understand before relying on the results.
Inserted and deleted rows cause cascading mismatches
If a row was inserted at position 5 in the changed file, every row from position 5 onward will appear as "changed" in the diff - because row 5 in the original is now being compared to row 6 in the changed file. The diff is technically correct (those rows do have different values at those positions) but it is not describing what you intended to compare.
In practice this means positional comparison works best when:
- Rows were not inserted or deleted - only cell values changed.
- New rows were appended at the bottom rather than inserted in the middle.
- You are comparing exports from a fixed schema where row order is determined by a consistent sort.
When to sort before comparing
If your data has a unique identifier column (an ID, a SKU, an account number), sort both files by that column before uploading. This aligns rows by entity rather than by position, so inserted or deleted rows produce clean added/removed results rather than cascading mismatches. You can sort directly in Excel or in a text editor before uploading here.
Common mistakes
Uploading files in the wrong order
The left panel is "Original" and the right panel is "Changed." Uploading the newer file on the left will reverse the color coding - added rows will appear as removed and vice versa. If the output looks backwards, use the Swap button to exchange both files without re-uploading.
Comparing different sheets from the same workbook
If you upload the same workbook file on both sides intending to compare two of its sheets, remember that both panels default to the first sheet. Use the sheet tabs below each preview to select the correct sheet on each side before running the comparison.
Formula values vs. formula text
This tool compares the calculated cell values, not the formula strings. If cell A1 contains =SUM(B1:B10) and the sum is 100, the tool compares the value 100. If the formula changed but the result is still 100, the tool will show that cell as unchanged. If you need to compare formulas themselves, export both sheets as .xlsx and use a native Excel comparison tool, or copy the formulas to a text editor and use the diff checker.
CSV encoding and delimiter issues
CSV files exported from different systems sometimes use different delimiters (comma, semicolon, tab) or different text encodings (UTF-8, Windows-1252). SheetJS auto-detects the most common formats, but if cell values appear garbled or cells are not splitting correctly, try opening the CSV in Excel or LibreOffice and saving it again as a new .csv before uploading.
FAQs
How do I compare two Excel files?
Upload your original .xlsx file on the left and the changed version on the right, then click Find Differences. Changed cells are highlighted in yellow with the previous value shown in parentheses. Added rows appear in green, removed rows in red.
How do I compare two CSV files?
Exactly the same way - upload the original CSV on the left and the updated CSV on the right, then click Find Differences. CSV and Excel files are normalized to the same grid structure internally, so the process is identical.
Is my data safe?
Yes. All processing happens entirely in your browser. Your files are never uploaded to any server, never stored, and never shared. You can confirm this by opening your browser's network panel (F12, then Network tab) and verifying that no network requests are made when you click Find Differences.
Can I compare files with multiple sheets?
Yes. When you upload a multi-sheet workbook, tabs appear below the file preview. Select which sheet to compare on each side independently.
Does the tool compare formulas or values?
Values. The tool compares what each cell displays, not the formula behind it. If a formula changed but the result is the same, the cell will show as unchanged.
Can I compare an .xlsx against a .csv?
Yes. The tool normalizes all supported formats to the same internal grid structure before comparing, so you can mix formats freely.
Is there a file size limit?
No hard limit. Files with up to 100,000 rows work well on modern devices. Very large files may take a few seconds to parse. Everything runs locally so performance depends on your device.
What does "changed" mean in the summary count?
"Changed" counts rows where at least one cell value differs between the two files. A row can have 1 changed cell or 50 changed cells - it counts as 1 changed row in the summary.