CLEAN · ENTIRELY IN YOUR BROWSER

CSV Cleaner

Clean up spreadsheet exports by trimming cell edges and removing exact duplicate rows. Change the output delimiter without breaking quoted fields.

CSV Cleaner workspace

LOCAL WORKSPACE
Clean / CSV CleanerA fresh start for your data.
JSON
CSVAwaiting input
A clean slate awaits

Your converted data will appear here.

Conversion options Fine-tune your output
Processed locally in your browser.

A PRACTICAL EXAMPLE

See the transformation.

Input

name,city
 Alex , London 
Sam,Paris
 Alex , London 

Output

name,city
Alex,London
Sam,Paris

How to use CSV Cleaner

  1. Paste CSV and choose its input delimiter.
  2. Choose trimming, duplicate removal, header preservation, and an output delimiter.
  3. Clean the data, compare row counts, and download cleaned.csv.

Trim cells before removing duplicate rows

When both options are enabled, trimming happens first, so rows that differ only by whitespace at cell edges can become duplicates. The first matching row is retained. This example keeps the header and changes the output delimiter to a semicolon.

Input

name,city
 Alex , Leeds 
Alex,Leeds
Sam,York

Output

name;city
Alex;Leeds
Sam;York

Common problems and how to fix them

Rows with the same ID remain

Duplicate removal compares every cell, not just one ID column. If another field differs, both rows stay. Case differences also count as different values.

The before-and-after counts exclude a row

With headers enabled, the header is excluded from both counts. Empty lines are skipped during parsing. Turn headers off when the first line is actual data.

I need spaces or formula-like values unchanged

Disable trimming if leading or trailing spaces are meaningful. Formula protection is a separate safety option and may prefix spreadsheet-sensitive cells; review the output before importing it.

Limitations and supported input

Duplicate comparison is case-sensitive and happens after optional trimming. Only whole-row duplicates are removed. Blank lines are skipped. Header rows are preserved and excluded from row counts. Formula protection can add an apostrophe to spreadsheet-sensitive values.

Files must be UTF-8 text and no larger than 10 MiB. Very deep or complex documents may exceed the 15-second processing limit. JSON numbers use JavaScript precision; keep long identifiers as strings.

Your data stays on your device

All parsing and conversion happens in a local browser worker. Your input is not sent to a server or saved in browser storage. Closing or reloading the page clears this workspace. Read our privacy explanation.

GOOD TO KNOW

A little clarity.

Simple tools. Straight answers.

Which duplicate row is kept?

The first occurrence is kept, preserving the original row order.

Will spaces inside a value disappear?

No. Trimming only removes leading and trailing whitespace from each cell.

KEEP THINGS MOVING

Useful next steps.

Find your next tool

ALL TOOLS

{ }JSON to CSVTurn JSON records into spreadsheet-ready rows.CSV to JSONTransform spreadsheet rows into clean JSON.YAML to JSONMake YAML configuration ready for JSON.JSON to YAMLTurn JSON into readable YAML configuration.{ }JSON FormatterPretty-print or minify JSON in one click.JSON ValidatorFind syntax errors with a clear location.CSV CleanerTrim whitespace, remove duplicates, tidy rows.

Privacy Settings

Optional measurement is off until you choose it. Pasted data, file contents, output, and search text are never included in our analytics events.

Read the privacy policy