Compare Two CSV or Excel Files
CSV, Excel (.xlsx, .xls). Both files must have a header row.
Comparing two versions of a spreadsheet manually is slow and error-prone. This tool takes two CSV or Excel files, matches rows by a key column of your choice, and shows every change: which rows were added, which were removed, and exactly which fields changed in the rows that exist in both files. Click any changed row to see the old and new values side by side. Export the full diff as CSV to share with your team. Runs entirely in your browser - your data never leaves your device.
How to use this tool
- 1Upload File A (the older or original file) and File B (the newer or updated file). CSV and Excel (.xlsx, .xls) are supported.
- 2Select the key column - the column whose values uniquely identify each row (e.g. ID, SKU, Name, Employee Number). The tool uses this to match rows between files.
- 3Click 'Compare files'. The results show all rows categorised as Changed, Added, Removed, or Unchanged.
- 4Click on any changed or added/removed row to expand it and see the exact field-level differences - old values crossed out in red, new values highlighted in green.
- 5Use the filter buttons to focus on specific change types. Click 'Export CSV' to download the full comparison report.
Example
File A: January HR export (150 employees). File B: February export. Key column: Employee ID. Results: 3 changed rows (pay grade updates), 5 new employees, 2 removed (leavers). Click a changed row to see old grade 'G4' replaced with 'G5' and salary updated from 42,000 to 46,000.
File A: Last week's product catalogue (800 SKUs). File B: This week's updated version. Key column: SKU. Results: 12 price changes, 25 new products, 8 products removed, 760 unchanged. Export CSV to share with the buying team.
Common use cases
- Finance teams comparing budget vs actuals exports, or month-on-month data snapshots
- Operations managers auditing changes to a product catalogue, inventory list, or asset register
- HR teams comparing employee rosters to identify new starters, leavers, and role changes
- Developers validating data migration output by comparing the before and after tables
- Procurement teams checking what changed between two versions of a supplier's product list
- Anyone who receives regular data exports and needs to quickly see what changed since last time
Common mistakes
- Choosing a non-unique key column - if the key column has duplicate values within one file, some rows will not match correctly. Use a truly unique identifier like ID, SKU, or email address.
- Uploading files with different column names for the same data - if File A has 'Product Name' and File B has 'Item Name', they will appear as separate columns. Standardise column names in your source files for accurate matching.
- Comparing files from different data sources with overlapping key values - the tool matches rows solely by key value. Two unrelated rows with the same key value will be compared as if they are the same item.
- Expecting currency or number formatting to be stripped - the tool compares values as text. If one file has '1,200.00' and another has '1200', they will appear as different even if the number is the same. Clean formatting in your source before comparing.
Frequently asked questions
What file formats are supported?
CSV (.csv) and Excel (.xlsx, .xls) files are supported. For Excel files, the first sheet is used. Both files must have a header row. There is no file size limit set by the tool, but very large files (over 20 MB) may be slow to process in the browser.
Are my files uploaded to a server?
No. All processing happens entirely in your browser. Your files are never sent to any server. CSV parsing uses Papa Parse; Excel parsing uses SheetJS - both run locally.
How does row matching work?
The tool uses the key column you select to match rows. Two rows are considered the same item when their key column values match exactly (case-insensitive). A row present in File A but not File B is 'Removed'. A row in File B but not File A is 'Added'. A row in both with different values in other columns is 'Changed'.
Can I compare files with different columns?
Yes. The tool shows all columns from both files. If a column exists in one file but not the other, it appears as empty for the file that lacks it. This makes it easy to spot when new columns were added or old ones removed.
How is this different from the Supplier Price Change Detector?
The Supplier Price Change Detector is specialised for comparing price lists - it auto-detects the price column, shows percentage changes, and sorts by largest increase. The CSV File Comparison tool is general-purpose: it compares any two CSV or Excel files row by row and field by field, regardless of what the data represents.
Can I export the comparison results?
Yes. Click 'Export CSV' to download the current view (respecting the active filter) as a CSV file. The export includes the key, status, and all field values from both files with A_ and B_ prefixes.
Related tools
Last updated