Compare two sheets
Paste or open two versions of a table, pick the column that identifies a row (an ID, SKU or email) and get a list of every cell that changed, every row that was added or removed, and a CSV report of it all. Everything runs in your browser.
Compare Sheets
or drop a file here. It stays on this device.
- Runs on your deviceNo upload. Your text stays in your browser.
- Free, no accountNo sign-up, nothing added to your data. Limits: files up to 32 MB; XLSX up to 1,000 columns, 200,000 rows and 1,000,000 stored cells, within 2,000,000 table positions.
- FormatsTwo tables from CSV, TSV or XLSX saved cell values in; a CSV report of changes out
- Works onCurrent Chrome, Edge, Firefox and Safari, desktop and mobile.
How it works
- Paste table A and table B, or open one or two .csv, .tsv or .txt files (the first fills A, the second B; if one of the two cannot be read, its table is left empty and the list says why).
- Choose the key column that identifies a row in both tables, or compare by row order, and set how cells are compared.
- Press Compare, read the changed cells and added or removed rows, then copy or download the CSV report.
Questions
How are rows matched?
By the key column you choose (or two columns together), which must exist under the same name in both tables. A key found only in A means the row was removed, only in B means it was added, in both means its cells are compared. Without a key, the first row of A is compared with the first row of B and so on, which only makes sense when nothing was inserted or reordered.
How are columns matched?
By header name, after trimming; empty names become column_N and repeats get _2, _3. Columns present in only one table are listed in the notes and left out of the cell comparison. The order of columns does not matter.
What counts as a changed cell?
A cell whose value differs after the options are applied: spaces around cells are ignored by default, letter case can be ignored, and with the number option 10, 10.0 and 1e1 count as the same value (numbers with leading zeros such as 007 are compared as text). Dates and currency are compared as text, so 1/2/24 and 2024-01-02 differ.
What about duplicate or empty keys?
If a key appears more than once in a table, only its first row is compared and the notes say how many were skipped; rows with an empty key are left out and counted. Pick a combination of two columns when one is not unique, or use CSV Cleaner to remove duplicate rows first.
What is in the report?
A CSV with the columns change, key, column, before and after: one line per changed cell, and one line per cell of every added or removed row, so the whole row is recoverable. The on-page table shows up to 2,000 lines; the report always has everything.
Which encodings and delimiters are supported?
Text is read as UTF-8, with or without a byte order mark; the report starts with one, so Excel reads accented and Chinese letters in it, as in Reconcile Sheets' report; a file saved in another encoding may show odd characters, so save it as UTF-8 first. Comma, semicolon, tab and pipe are detected for each table separately, or you pick one for both. Quoted fields follow the CSV standard (RFC 4180); a quote that never closes is reported with its table and line number, and a closing quote followed by other text before the next delimiter, such as "12.50"x, with its table, line and column, instead of being joined to the cell.
Can I open an Excel workbook?
Yes: choose an .xlsx file and select its worksheet if it has more than one. The table is filled with saved cell values; number cells are read as Excel shows them, to 15 significant digits, so a stored -85.40000000000001 is -85.4, and text cells exactly as typed. Formula results are read from the last saved calculation; formulas are never executed. Common date formats become ISO dates and simple zero-padded identifiers keep their zeros. Charts, macros and formatting are not imported. A formula without a saved result or a cell containing a spreadsheet error is reported before import. Old .xls, encrypted files and .xlsm are not accepted; save as .xlsx or CSV first.
Is my text uploaded?
No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.
Do I need an account or to pay?
No. These basic tools are free and add nothing to your data. The only limits are the tool's own: files up to 32 MB; XLSX up to 1,000 columns, 200,000 rows and 1,000,000 stored cells, within 2,000,000 table positions. Within them, the practical limit is your device's memory.
What does this page keep in my browser?
Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.
Questions or problems
Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.