All tools
Text WORKBENCH / FREE BROWSER TOOL

Compare CSV rows and changed cells

Compare parsed CSV exports with comma, semicolon or tab separators. Review changed cells and optionally align records by a unique key column.

No signup · File contents stay on this device
Text is compared on this deviceNo account, upload, or text storage

Quoted commas, escaped quotes, and multiline fields are supported. Rows match by position unless you enter a unique 1-based key column. Columns match by position; formulas and dates remain plain text.

0.0 KiB
0.0 KiB

Up to 512 KiB per input; 2,000 text lines or 1,000 CSV data records and 100 columns. Inputs stay in page memory. Nothing is saved in browser storage.

Comparison happens in this browser. Text and imported file contents are not sent to a server or saved in local storage. A downloaded report contains the compared values: store and share it with the same care as your original files. Privacy details

IMAGE → DOCUMENT WORKFLOW
OBSERVED RESULTS / ORIGINAL FIXTURES

Sample checks you can repeat

Measured with the listed sample and settings; these may differ from this page’s starting preset. Timings are individual processing-function runs in the stated environment and exclude page loading. Library caches may be warm. These small-file checks do not establish performance or compatibility for every document.

SampleSettingsObserved outputEnvironment
Original synthetic CSV pair: 154 and 185 bytes; quoted commas and multiline fieldsCSV; comma delimiter; first row header; positional rows2 changed cells; 1 added record; 4 added cells; 0 removed records. 0.4 ms.Chrome · Apple M2 / macOS · 15 Oct 2026 · local test

Specific tasks

Text compareIgnore-whitespace text compareLine-by-line text diff

Using this tool

How to use csv diff checker

  1. Paste the earlier and later CSV exports. Keep automatic delimiter detection or select comma, semicolon or tab explicitly.
  2. Indicate whether the first row contains headers. Default matching compares records by position; set a unique key column when order should not determine identity.
  3. Compare, inspect changed cells and added or removed records, and resolve parsing or key errors before trusting the table.

Before you start

What to keep in mind

  • Each input is limited to 512 KiB of UTF-8 text. Line comparison supports up to 2,000 lines per side; a terminal newline can create a final blank line.
  • CSV comparison supports up to 1,000 data records plus a header and 100 columns. Fields, not spreadsheet formatting or formulas, are compared.
  • Case remains significant. Whitespace normalization can hide spacing edits, so choose it only when those differences are intentionally irrelevant.
  • The result is a comparison aid. It does not validate legal meaning, totals, business rules, code behavior or whether an import will succeed.
CSV diff checker: earlier and revised inputs are aligned to show parsed CSV cell differences.
Illustrative csv diff checker workflow. The drawing shows the operation, not a measured output; see the sample table for recorded test conditions.

Choose what makes two records the same

Two exports can contain the same records in a different order. Default row-position matching compares the first data record with the first, the second with the second and so on. That is useful when export order is meaningful. For an inventory table with a stable unique SKU, choose its one-based key-column number instead. A key aligns corresponding records even when their row order changes; blank or duplicate keys are rejected because they make the match ambiguous.

Column order remains significant. The tool matches fields by position rather than searching for similar header names, so rearranged columns should be understood before interpreting the report. Quoted commas and quoted multiline notes are parsed as part of a field, and escaped quotes use the doubled-quote convention. Values are compared as strings: 0012 differs from 12, and 1.00 differs from 1.0. No date inference, currency conversion or spreadsheet-formula execution occurs. Review the supplied example’s quantity and note edits, then apply the same rules to a non-sensitive export. A clean comparison does not validate totals or the destination system’s import requirements.

Review identifier and record changes separately

A key-column match uses the selected column’s text, so an identifier 0012 is different from 12. Blank or duplicate keys cannot establish an unambiguous correspondence and are rejected. Choose a stable identifier that exists in both exports; a row number regenerated by an export may not represent the same record after sorting.

The comparator does not align rearranged columns by header names. A moved quantity column can therefore produce field differences even when its displayed values appear familiar. Check the delimiter, header choice and column order before interpreting added or removed records. Both versions can share a wrong total, and a clean comparison cannot validate a future spreadsheet import. Input text remains local; formulas and numeric-looking cells are not executed or automatically converted.

Common questions

About csv diff checker

Does a reordered CSV always count as changed?

With row-position matching, a reordered record can appear changed. A stable unique key column can align records independently of their order. Key values must be present and unique on each side.

Can quoted fields contain commas or newlines?

Yes. The parser supports quoted delimiters, doubled quotes and multiline quoted fields. Malformed quoting is reported rather than silently treated as a successful comparison.

Does it compare spreadsheet formulas or cell formatting?

No. CSV contains field values and separators, not workbook formatting. A value beginning with an equals sign is compared as text; the tool does not execute spreadsheet formulas.

Is pasted text stored on the server?

No. Comparison takes place in the browser and the input is not sent to a comparison API or stored as a server document. Avoid using a shared or untrusted device for confidential material.

Does a clean result mean the revised version is correct?

No. It means no relevant differences were found under the selected rules. Both versions can share the same mistake, and ignored whitespace can hide a change you would want to review in another context.