Guide
Compare two CSV files locally before you merge or import
Learn how to compare two CSV exports locally in the browser: when column layouts match, count differing cells, filter to changed rows, and keep files off the server with Table.
Teams compare CSVs every week: yesterday versus today warehouse snapshots, staging versus production extracts, vendor resends after a disputed totals call, or finance copies before ERP ingestion. Spreadsheets work until width, row count, or policy blocks uploading the second file next to the first.
A browser workflow can load both files on the same machine, summarize whether headers line up, and surface row-level differences without routing bytes through a shared SaaS account you do not control.
Table exposes a dedicated compare mode at /compare: pick a left and right CSV, review read-only grids, and—when column keys match in the same order—see how many cells differ and optionally hide identical rows so reviewers focus on what changed.
When side-by-side compare beats diff utilities
Classic text diff tools excel at line-by-byte comparisons, yet CSV semantics are columnar. A single shifted comma can make two logically identical business rows look unrelated in a plain diff, while a grid preserves columns, types, and human-readable headers.
Visual grids also help stakeholders who do not read unified diff output daily. Sorting, filtering, and search still apply in read-only compare views so you can isolate one SKU, one store, or one date range while keeping the other file aligned row index by row index.
What “matching columns” means for automatic stats
Table compares cells row index to row index after both files parse. Automatic counts require the same derived column keys in the same order—typically true when both exports share an identical header row and delimiter discipline.
If one vendor renamed a field, inserted a column, or reordered headers, the tool still renders both grids for manual review, but numeric diff summaries pause so you are not misled by misaligned fields. Normalize headers upstream or export from the same profile when you need strict comparability.
Privacy, performance, and practical habits
Parsing stays in the browser for compare mode just like the main viewer. Follow the same rules you would for regulated extracts: use trusted devices, clear sessions on shared laptops, and avoid comparing live PII on untrusted networks even when data never hits our servers.
Large files hit the same import caps as the editor. Split extracts by date or region when you approach limits, then compare the smaller slices. When you only need to prove a handful of rows changed, filter each grid after loading to shrink cognitive load before you scan for differences.
Frequently asked questions
- Does compare mode upload my CSVs?
- No. Both files are parsed locally in your browser. Check the Privacy page for the latest policy language and your internal data-handling rules for sensitive extracts.
- Can Table align rows by a primary key instead of line number?
- The shipped compare flow aligns by row index after import. For key-based joins, sort both files by the same stable key in another tool or script first, or export ordered extracts from your warehouse so row order reflects the join you care about.
- Where do I start in the product?
- Open the Compare page from the site navigation, load left and right files, read the summary card, then toggle “only rows with differences” when columns match and you want a tighter review surface.