Loading ToolDeck, please wait.

ToolDeck.online

INITIALIZING_

0%
DESIGNED BY SJ VISUAL FLOW STUDIOS
ToolDeck.onlineOpen. Build. Go.
Skip to content

CSV Cleaner & Deduplicator

Clean a messy CSV in your browser. Deduplicate rows, trim whitespace, drop empty rows and columns, strip BOM, fix headers. No upload, no sign-up, no watermark.

  • Auto-detects comma, semicolon, tab and pipe
  • Dedupe by all columns or selected columns
  • Live preview and row-by-row stats
  • Copy or download the cleaned CSV

Nothing uploaded. The file is read on your device only.

Cleaning options

Toggles

Paste CSV data above or drop a file. Cleaning options apply live and the cleaned file appears below.

Everything runs in your browser. Nothing is uploaded. Nothing is logged.

  • 100% Free
  • No Sign-Up
  • No Upload
  • Auto Delimiter
  • Live Preview
  • Works Offline

Every cleaning option explained

Nine toggles, each one there to fix a specific kind of mess. Here is what each one does and when to use it.

OptionWhat it doesWhen to use it
DelimiterWhich character separates columnsForce comma, semicolon, tab or pipe if auto-detection picks wrong
Trim whitespaceRemoves leading and trailing spaces and tabs from every cellAlmost always. This is the number one source of duplicate-looking rows
Drop empty rowsRemoves rows where every cell is blankExports with trailing blank lines or section gaps
Drop empty columnsRemoves columns where every data cell is blankDatabase exports that carry columns from removed tables
Remove duplicatesKeeps the first occurrence of each unique rowMerged exports, mail lists, survey data with repeat respondents
Dedupe by columnsCompares only the columns you selectDedupe by email only, or by email plus date, ignoring other differences
Lowercase headersConverts every header to lower caseDownstream code expects snake_case headers
Strip BOMRemoves the invisible byte order mark from Excel exportsHeader cell looks empty but a comparison fails
Quote every cellWraps every value in double quotesDownstream parser is strict about field types

Which delimiter does your file use?

Four delimiters cover almost every CSV in the wild. The tool picks one automatically, but you can force it.

DelimiterSymbolCommon in
Comma,US and UK Excel, Google Sheets, most web exports
Semicolon;European Excel (Germany, France, Spain), some EU CSVs
Tab\tDatabase exports, TSV files, clipboard from spreadsheets
Pipe|Legacy mainframe exports, some analytics tools

Why this is the best free CSV cleaner

Most online CSV tools push your file through a server. This one never does, and it gives you column-level deduplication that Excel and Sheets hide behind formulas.

FeatureTToolDeckTypical online CSV toolSpreadsheet apps
Runs entirely in your browserYesPartialYes
No sign-up or emailYesPartialPartial
Auto-detects delimiterYesPartialPartial
Dedupe by selected columnsYesNoYes
Drop empty rows and columnsYesPartialYes
Trim whitespace in every cellYesPartialYes
Strip BOM from Excel exportsYesPartialYes
Live preview of cleaned fileYesPartialYes
Copy or download cleaned CSVYesPartialYes
Works offline after first loadYesNoYes

Comparison reflects publicly available information at the time of writing. Features may change. Representative examples of common patterns.

More free data and text tools

Free browser-based tools. Nothing uploaded, ever.

See all ToolDeck tools

How it works

  1. 1

    Paste or drop your CSV

    Copy the file contents in, or drop a .csv file onto the box. The tool reads it locally. Nothing is uploaded.

  2. 2

    Pick your cleanups

    Turn on trimming, deduplication, drop empty rows or columns, strip BOM, lowercase headers. If you want dedupe on specific columns, click those column chips.

  3. 3

    Copy or download

    Check the preview and stats, then copy the cleaned CSV to your clipboard or download it as a file ready to import into any tool.

Everything you get for free

  • Auto-detects the delimiter

    Comma, semicolon, tab and pipe are all supported. The tool reads the first few lines and picks whichever delimiter appears most often, so exports from Excel Europe, Google Sheets and PostgreSQL all just work.

  • Deduplicate by any column set

    Remove rows where every cell is identical, or only where the columns you pick match. Dedupe by email alone, by email plus date, or by the whole row. Case-insensitive by default.

  • Trim every cell

    Leading and trailing spaces, tabs and non-breaking spaces are removed from every cell. This is the number one cause of duplicate rows that look identical but are not.

  • Drop empty rows and columns

    Blank rows at the bottom of an export and phantom columns at the right are removed in one step. The header row is always preserved, even if the data below it is empty.

  • Strip BOM and lowercase headers

    Excel exports often start with a byte order mark that hides in the first header cell. The tool strips it. A toggle also lowercases every header so downstream code stops breaking on capitalisation.

  • Handles real RFC 4180 CSV

    Quoted fields, escaped double quotes, embedded commas, embedded newlines inside a cell. All parsed correctly, all re-emitted in the same style so nothing breaks downstream.

  • Live preview and stats

    Every change updates a preview table and a stats strip in real time: rows in, rows out, duplicates removed, empty rows dropped, cells trimmed. No guessing whether the cleanup worked.

  • Zero upload, zero logging

    The CSV never leaves your device. There is no server side parsing, no temporary file storage, no analytics on the content itself. Everything runs in JavaScript you can inspect.

What people use it for

  • Deduplicate an email list

    Marketing exports often contain the same email twice with slightly different casing or a trailing space. Trim and dedupe by email column in one step before importing into your CRM.

  • Clean up a database export

    PostgreSQL and MySQL CSV exports have a BOM, quoted fields, and empty columns from removed tables. Strip all three in a few clicks before you load the file into a spreadsheet.

  • Fix a broken spreadsheet import

    Some tools refuse CSV with an extra empty column at the right, or a header with a stray space. Drop empty columns and trim cells and the file imports cleanly.

  • Prepare data for a mail merge

    A mail merge chokes on duplicate recipients. Dedupe on the email column, or dedupe on the full name plus address, and the merge sends one copy to each person.

  • Normalise an e-commerce product feed

    Product feeds from multiple suppliers arrive with different delimiters, different headers and different casing. Unify the format here before pushing to Google Merchant Center or Meta.

  • Clean a survey export

    Survey tools export every response with a blank row between sections. Drop empty rows, trim cells, dedupe on respondent ID, and the file is ready for analysis in R or Python.

Questions people ask

What does a CSV cleaner do?

A CSV cleaner reads a comma-separated values file, applies a set of normalisation rules (trim whitespace, remove empty rows, drop empty columns, deduplicate rows, fix headers) and writes a new CSV that is ready to import somewhere else. It is the equivalent of opening the file in Excel, doing ten manual fixes, and saving again, but in one step and without risk of Excel mangling your data.

Is this CSV cleaner free?

Yes. Every option is free to use with no sign-up, no watermark and no daily limit. ToolDeck may show ads to pay for hosting, but they never lock a feature.

Is my CSV uploaded to a server?

No. The whole thing runs in your browser using JavaScript. The file is read with the browser File API, parsed in memory and re-serialised in memory. Nothing is uploaded to ToolDeck or any third party, and you can verify this by watching your browser network tab while using the tool.

Is there a size limit?

There is no server side limit because nothing is uploaded. The practical limit is your device memory. Files of a few megabytes are trivial. Files of tens of megabytes are usually fine on a modern laptop or phone.

How does deduplication decide what counts as a duplicate?

By default two rows count as duplicates if every cell matches after trimming and lowercasing. If you select specific columns in the "Deduplicate by columns" section, only those columns need to match. Comparison is case-insensitive so ada@example.com and ADA@example.com are treated as the same value.

Which row is kept when there are duplicates?

The first occurrence is kept and all later occurrences are removed. That means the earliest row in the file wins. If you want a different row to win, sort the input file before pasting it in.

What is a BOM and why strip it?

A byte order mark is an invisible character that Excel sometimes writes at the start of a UTF-8 CSV. It hides inside the first header cell, so a header that looks like "name" is actually "\uFEFFname" and comparisons fail. Stripping it makes the first column behave like every other column.

Will this break quoted fields?

No. The parser understands RFC 4180 CSV including quoted fields, escaped double quotes, embedded commas and embedded newlines inside a cell. Fields that need quoting are re-quoted on output so the cleaned file is still valid CSV.

Can I convert the delimiter while cleaning?

Yes. If your input uses semicolons, you can select comma in the Delimiter dropdown and the output will use commas. This is useful when your analysis tool insists on one specific delimiter.

Does it work with TSV or pipe-separated files?

Yes. TSV is just CSV with a tab delimiter, and the tool has a Tab option. Pipe-separated files use the Pipe option. The auto-detect logic usually picks the right one on its own.

Can I undo?

There is no undo button, but every change is a toggle. Turn the option off and the preview reverts to the previous state immediately. Your original pasted data is never modified, so you can always start over.

Which browsers are supported?

Current versions of Chrome, Edge, Firefox and Safari, on desktop and mobile. Everything uses standard web APIs and no browser specific features.

Your CSV never leaves your browser

The file is read with the browser File API, parsed in memory and re-serialised in memory. There is no server side parsing, no temporary storage and no analytics on the content itself. You can confirm this by watching the network tab while using the tool. Read how we keep it private.