Compare two CSV or Excel files by row and cell
A spreadsheet diff matches the rows of two tables by a key column, such as an ID, and compares every cell of each matched pair, so a reordered file or a moved column is not a change while an edited price, a removed row or a new row is.
Runs entirely in your browser; nothing is uploaded.
How rows are matched
Equivl proposes a key: the first column whose values are different in every row on both sides, such as an ID or a SKU. Rows with the same key are compared cell by cell, a key found on one side only is an added or removed row, and the order rows appear in does not matter. You can pick any other column as the key. A column whose values repeat can still be chosen; rows that share a value are then paired in file order, and the result says how many there were.
When no column is unique, rows are paired by position, first with first, and the result says so. That pairing is strict: a row inserted partway through makes every row after it look changed. It can make a file look more different than it is, never less.
How columns and sheets are matched
Columns are matched by their header name, so a column moved to another position is not a difference. A column on only one side is reported once, as an added or removed column, and does not add a changed cell to every row. Names are matched exactly, including case; matching them ignoring case is an option, and a match that needs it is reported as near-equivalent. Two files that share no column name are not compared at all, and both header rows are shown.
In a workbook, sheets are matched by exact name, never by position. A sheet on one side only counts all its rows as added or removed. A CSV compared with a workbook of several sheets is compared with the one sheet you choose, and the result says the others were not compared.
What a verdict means
- Identical: the two files are the same bytes.
- Equivalent: two CSV files hold the same cells, whatever their delimiter, quoting, line endings, row order or column order.
- Near-equivalent: every cell matches, but something was set aside to get there. A workbook is always read as cell values only, so two workbooks with the same values are near-equivalent at best: formulas, number formats, colors, comments and charts are not compared, and a formula counts as the result it had when the file was last saved. The same cap applies to a CSV against a workbook, to a match within a number tolerance, and to text like
1.50matched as the number 1.5. - Divergent: at least one cell, row or column differs. The score is the share of cells that match, out of every cell on either side.
Numbers and text
Every cell of a CSV file is text, so 2.50 and 2.5 are
different until you turn on reading numeric text as numbers. That option is on by
default when one side is a workbook, where a number cell is a number and its CSV
export is text. Numbers too long for a 64-bit float, such as
9007199254740993, are compared as written, never rounded into a match.
A date cell in a workbook is read as its ISO date, such as
2026-09-01.
Where it stops instead of guessing
- A row with more or fewer fields than the header stops the comparison with its line number. It is never padded with blanks, since invented blank cells could match.
- Two files with a header and no rows get no verdict. Two empty tables are not evidence that two exports agree.
- A formula with no saved result, a value in a column with no header, or a column name used twice stops with the cell or column named.
Limits
- Files are read up to 50 MB and 2 million rows each; a larger file is refused before it is read, because everything runs in the browser tab.
- Workbooks are read from
.xlsxand.xlsmfiles (macros are never read or run); older.xlsand OpenDocument files are not. - A row of a workbook with every cell blank is skipped. A title above the header row can be skipped by setting which row holds the header.
- Composite keys, two columns together, are not supported.
Questions
Are my files uploaded anywhere?
No. Both files are read and compared inside your browser, in a background worker, and never leave the page. They are not kept after you leave either; saving a result to history keeps its summary and settings, never a cell.
Does it compare formulas and formatting?
No. A workbook is compared by the values in its cells. A formula counts as the result saved with the file, and formats, colors, comments and charts are not read, so a match between workbooks is reported as near-equivalent rather than equivalent.
What if my rows are in a different order?
Rows are matched by a key column, so order does not matter. If no column has a different value in every row, rows are paired by position instead and the result says so; you can pick a column to pair by.
Can I compare a CSV file with an Excel file?
Yes. A CSV is compared with one sheet of the workbook, with numeric text read as numbers by default. A perfect match is reported as near-equivalent, because the two were read by different readers and the workbook was read as values only.