CSV Cleaner & Formatter
Remove duplicates, trim whitespace, fix encoding, change delimiters, and export clean data — all in your browser.
Drag & drop your file here
Supports .csv, .tsv, .txt — delimiter auto-detected
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
- 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.
- 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.
- Choose cleaning options — select which issues to fix, such as removing empty rows, trimming whitespace, deduplicating, or fixing encoding artifacts.
- Set transform options — optionally change the output delimiter, text qualifier character, or apply a case conversion to all or some cells.
- 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?
- Cleaning CSV exports from CRMs, ERPs, or analytics platforms before importing into a database
- Preparing data files for ETL pipelines where extra whitespace or encoding artifacts cause parse failures
- Deduplicating contact lists or product catalogs before merging multiple data sources
- Converting between delimiter formats (CSV to TSV, or TSV to pipe-delimited) for tool compatibility
- Fixing files from Windows systems with CRLF line endings before processing on Linux or Mac servers
- Standardizing case formatting in name or address fields before uploading to a CRM or mailing platform
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.