CSV Cleaner & Formatter

Remove duplicates, trim whitespace, fix encoding, change delimiters, and export clean data — all in your browser.

1 Upload Your File
📂

Drag & drop your file here

Supports .csv, .tsv, .txt — delimiter auto-detected

File:
Size:
Rows:
Columns:
Delimiter: comma

2 Preview
Empty cell
Whitespace-only
Duplicate row

3 Cleaning Options
Remove / Fix
Transform

4 Cleaned Output
Cleaned data preview

What is the CSV Cleaner?

The Densanon CSV Cleaner is a free, browser-based utility for fixing messy delimited data files. Whether you're working with CSV (comma-separated), TSV (tab-separated), or pipe-delimited text files, this tool helps you remove noise, standardize formatting, and export a clean, ready-to-use file — all without uploading your data to any server. Your data is processed entirely in your browser's JavaScript engine.

How to Use the CSV Cleaner

  1. Upload your file — drag and drop a .csv, .tsv, or .txt file onto the upload zone, or click "Browse File." The delimiter is auto-detected and shown in the file info bar.
  2. Review the preview — the first 50 rows are displayed with problem cells highlighted: orange for empty or whitespace-only cells, and blue for duplicate rows.
  3. Choose cleaning options — select which issues to fix, such as removing empty rows, trimming whitespace, deduplicating, or fixing encoding artifacts.
  4. Set transform options — optionally change the output delimiter, text qualifier character, or apply a case conversion to all or some cells.
  5. Download or copy — click "Download Clean CSV" to save the cleaned file, or "Copy to Clipboard" to paste the cleaned data elsewhere.

Cleaning Options Explained

Remove Empty Rows

Removes any row where every cell is completely blank (after optional trimming). This is common in CSV exports from spreadsheets like Excel or Google Sheets, which often append trailing empty rows.

Remove Empty Columns

Removes any column where every data cell (excluding the header) is blank. Useful when source systems export extra placeholder columns with no actual data.

Trim Whitespace

Strips leading and trailing spaces, tabs, and other whitespace from every cell value. Fixes a common issue where values like John should be John — extra spaces cause mismatches in database lookups and imports.

Remove Duplicate Rows

Keeps only the first occurrence of any row that appears more than once. Comparison is performed across all columns simultaneously (case-sensitive).

Fix Encoding Issues

Replaces common Unicode characters that appear when text is copy-pasted from Word or web pages: curly/smart quotes (" " ' ') become straight quotes, em-dashes (—) become double-hyphens, en-dashes (–) become single hyphens, ellipses (…) become three dots, and non-breaking spaces become regular spaces.

Remove Header Row

Strips the first row from the output. Useful when a downstream system needs raw data without column names, or when you're concatenating multiple CSVs and only want one header.

Standardize Line Endings

Normalizes all line endings to Unix-style LF (\n). This fixes files exported from Windows (CRLF) or old Mac systems (CR) that can cause parse errors in Linux-based pipelines.

Transform Options Explained

Output Delimiter

Changes the column separator in the output file. Choose comma, tab, semicolon, or pipe. Defaults to preserving the auto-detected input delimiter. Use this to convert CSV to TSV, for example.

Text Qualifier

The character used to wrap cell values that contain the delimiter or newlines. Double quotes are the RFC 4180 standard. Choose "None" only if you're certain no cell values contain the delimiter character.

Case Transform

Converts all text to UPPERCASE, lowercase, or Title Case. You can optionally apply this to data rows only, leaving the header row unchanged — useful for formatting name or address columns.

When Should You Use This Tool?

Frequently Asked Questions

Is my data safe? Does it get uploaded to a server?

No. All processing happens entirely in your browser using JavaScript. Your file is read locally and processed in memory — no data is ever sent to any server. It's safe for sensitive or proprietary files.

What file formats are supported?

Any delimited text file: .csv (comma-separated), .tsv (tab-separated), .txt (any delimiter). The delimiter is auto-detected from the content and displayed in the file info bar after upload.

How large a file can I process?

Processing is limited by your browser's available memory. Files up to a few hundred megabytes work fine in modern browsers. Very large files (500MB+) may process slowly depending on your device.

What exactly does "Fix encoding issues" change?

It replaces: curly/smart double quotes (" ") → straight double quote ("), curly single quotes (' ') → straight single quote ('), em-dash (—) → double-hyphen (--), en-dash (–) → single hyphen (-), horizontal ellipsis (…) → three dots (...), bullet (•) → asterisk (*), and non-breaking spaces → regular spaces.

Can I process TSV or pipe-delimited files?

Yes. The delimiter (comma, tab, semicolon, or pipe) is auto-detected from the file content. You can also independently change the output delimiter to convert between formats.

Does "Remove header row" affect which rows get cleaned?

Cleaning operations (trim, empty row removal, deduplication, etc.) are applied first, then the header is removed from the final output if that option is checked. Empty column detection always compares data rows only, regardless of the header removal setting.