FREE ONLINE TABLE TOOL

Compare CSV files

See additions, removals, and edits separately. Review added, removed, modified, and unchanged records by key.

No account neededFiles stay on your deviceOriginals preserved

Start with your data

Import data, confirm the rules, review the result, and export a new copy.

◈ Processed on your device
1Import data—2Configure—3Review—4Export

Drop your table here

Drag and drop a CSV, TSV, or delimited text file

UTF-8 · Up to 10 MB per file

Start with your data

File content is processed in your browser, without uploading it.
Kept in page memory · Continue across tools · Refreshing or closing clears the sessionCSV / TSV · UTF-8
Sample library Products · Supplier files · System imports

Clear this session?

Imported data, steps, and results will be released. Export any needed copies first. Original files are unaffected.

A CLEARER WAY TO WORK

See additions, removals, and edits separately.

Explore the scope, review process, and results in three practical scenes.

01 / SCOPE & PURPOSE

Make version changes visible

Stop scanning two versions row by row. Match records by chosen fields and inspect additions, removals, changes, and unchanged records separately.

Illustrative scene for Compare CSV files: Make version changes visible
Illustrative scene
02 / RULES & REVIEW

Choose a reliable identity

Choose the identifier that represents the same record in both files. Duplicate or missing keys require attention instead of forcing a match by row position.

Illustrative scene for Compare CSV files: Choose a reliable identity
Illustrative scene
03 / RESULTS & NEXT STEPS

Inspect old and new values

Inspect old and new values alongside source locations. Export an explicitly chosen report or the available result set for review and follow-up.

Illustrative scene for Compare CSV files: Inspect old and new values
Illustrative scene
BUILT FOR YOUR TABLES

What Compare CSV files can do

Explore the available features and choose what your table needs next.

Stable key matching

Match on one or more fields instead of relying on row order.

Use in the tool

Four change categories

Separate added, removed, modified, and unchanged records.

Use in the tool

Before-and-after cells

See old and new field values instead of only knowing that a row changed.

Use in the tool

Ambiguity checks

Missing or duplicate matching keys stop the comparison and explain the issue.

Use in the tool

Sources and issue reports

Trace differences back to their sources and download matching-issue reports.

Use in the tool

Explicit export scope

Choose the report you need. Searching the visible grid does not reduce the export scope.

Use in the tool
HOW IT WORKS

Three steps to a reviewed result

Confirm the input, inspect changes, and save the output you need.

01

Import and confirm the source

Choose a CSV or TSV file, or paste a table. Check the delimiter, headers, and preview before confirming the full import.

  • Content stays in your browser
  • Source files remain intact
Go to the input area
02

Set the rules, run, and review

Choose the original and updated files and assign stable matching keys. Review each difference category. Missing or duplicate keys block ambiguous comparisons and produce an issue report.

  • Process the full dataset
  • Review results and sources
Set processing rules
03

Choose a scope and export a copy

Choose the result or report and CSV or TSV format. Review the export summary and protection count, then confirm download or copy.

  • Read-back verification before export
  • Choose the scope explicitly
Continue in the tool
Need detailed rules, examples, and limits?Read the full guide

Compare CSV files by a stable matching key

Comparing two CSV files is a question about what changed between snapshots. TableWorkbench distinguishes an Original file from an Updated file and classifies records as added, removed, modified, or unchanged. A record's position is not its identity when you choose key comparison. Moving a product from the first row to the last row therefore does not create a change by itself. You select the fields that identify corresponding records and the fields whose values matter for this comparison.

Begin by importing each snapshot and confirming its parsing independently. Two exports can use different delimiters or column orders while still describing the same records. Check that identifiers are read as text, that the first actual product has not become a header, and that multiline descriptions remain intact. The workbench validates the complete parsed input rather than treating a successful first-page preview as proof that the rest of a file is valid. Errors are reported without silently dropping troublesome records.

Establish an unambiguous correspondence

Select one or more matching columns in each file. Their names can differ, but their meanings and selection order must correspond. For example, a composite key of Store and SKU can distinguish a product sold in two branches. Every selected component must be present, and each combined key must be unique within each snapshot. The tool checks these conditions across all records before producing a deterministic key-based comparison.

A repeated key or an empty component blocks comparison and produces an issue report with source locations. The tool does not arbitrarily pair the first repeated record with another repeated record. You can inspect duplicates in the dedicated deduplication tool, correct the source, or choose a more complete key. Position comparison is available as an explicit alternative, but it means comparing the first record with the first, the second with the second, and so on. It is appropriate only when order itself is the intended correspondence.

Select fields and matching rules carefully

Leave the comparison-column selection empty to compare all shared column names, or select only the columns relevant to your question. Excluding a changing export timestamp can prevent that administrative field from dominating a product review. Different column positions are aligned by name, and a manual mapping can connect differently named fields. Added and removed columns are listed in a separate structure report so a schema change is not disguised as thousands of ordinary cell modifications.

Strict text equality is the default. The strings 12.00 and 12.0 differ, as do Blue and blue or a value with a trailing space. Ignore case and Trim surrounding whitespace are explicit options. They affect matching and equality checks without rewriting the stored originals. This version does not interpret currency tolerances, ambiguous dates, or numeric equivalence. If those semantics are necessary, define and validate a separate conversion process instead of assuming that visually similar values are interchangeable.

Understand the four result classes

Added means a key appears in the updated snapshot but not the original. Removed means it appears in the original but not the updated. These describe file membership; they do not prove that an item was created or deleted in a live business system. A filtered source export, an access change, or an incomplete extraction can also change membership. Interpret the result with knowledge of how both snapshots were produced.

Modified means a matched record differs in at least one selected shared field. The modification report has one row for each changed field, retaining its old value, new value, and source positions on both sides. One modified record can therefore produce several report rows. Unchanged means the selected fields match under the chosen rules; an excluded column can still differ. Keep the configuration with your analysis when that distinction matters to another reviewer.

Work through the standard product example

The synthetic original catalog contains SKUs 001, 002, and 003. SKU 001 has price 12.00. The updated catalog contains 003 first, then 001 at price 12.50, then the new SKU 004. Its columns are also reordered. Select SKU as the key on each side and compare the shared fields. The expected outcome is one added record, one removed record, one modified record, and one unchanged record.

SKU 003 is unchanged despite moving. SKU 001 contributes a price change from 12.00 to 12.50. SKU 002 belongs to the removed report, and SKU 004 belongs to the added report. Four classified product identities do not mean either input had four records: each input still had three. Reverse the original and updated selectors and additions become removals, removals become additions, and the price change reverses its old and new values. Comparing either file with itself produces no modifications.

Export the evidence you need

Result tabs provide separate views for added, removed, modified, unchanged, structure changes, and the complete updated table. The complete table is provided for continued processing; it is not declared to be a corrected or authoritative answer. Apply it to the workflow only when you intend to continue working with the updated snapshot. The reports remain the evidence for the comparison you ran. If a rule or input changes, the previous result becomes stale and needs another run before export.

The export dialog asks you to choose scope independently of the visible tab and grid search. Select a single report when you need only new records, or an archive when you need the collection of results and the file manifest. The modified report retains both old and new values. Choose protection deliberately: spreadsheet-safe output adds an apostrophe to formula-like prefixes, while raw output requires acknowledging that another program might execute such text as a formula. Generated text is reread before download to validate serialization.

Frequently asked questions

How do I compare two CSV files without treating reordered rows as changes?

Use key-based comparison with a stable, unique identifier or field combination. The tool can match records regardless of their positions, then compare the selected fields. Resolve blank or duplicate keys first. Choose position-based comparison only when row positions themselves carry meaning for your task.

Can the files have a different row order?

Yes, in key mode. Correspondence is established from the selected key fields rather than row positions. A reordered but otherwise identical dataset should produce no modified records. If you select position mode, row order becomes significant by definition. Check the mode before interpreting a large set of differences caused by sorting one input.

What if I do not have a unique identifier?

Consider whether several existing fields together form a stable unique key. A name alone may not be sufficient. If no such combination exists, use position comparison only when the ordering has a reliable meaning, or improve the source data first. The tool cannot infer real-world identity from similar text, and it does not manufacture an identifier to claim certainty.

Can I compare only prices and ignore descriptions?

Yes. Select the relevant value columns while retaining the fields needed to match records. A matched record is then classified as unchanged when those selected values agree, even if an unselected description differs. This is a scoped comparison, not a statement that every cell in both files is identical. Document the selected fields when sharing the results.

Why does the modified report contain more rows than the modified count?

The summary counts modified records. The report records individual field differences, so a product with a changed price and description contributes two report rows but one modified record. Source locations and field names make the relationship inspectable. This is deliberate and avoids squeezing multiple changes into an opaque combined text cell.

Can I trust a zero-change result as a business audit?

A zero-change result means the selected data and rules found no differences. It does not verify that both exports are complete, current, authorized, or correct in the source system. This tool prepares and compares files; it is not a financial audit or a system-of-record certification. Check extraction conditions and the scope before drawing broader conclusions.

Ready to work with your table?

Start with a sample to learn the workflow, then process your own files.