CSV Cleaner
Trim cells, drop blank rows, remove duplicates, tidy any messy export.
Paste a messy CSV and get a clean one back: trimmed cells, blank rows gone, duplicate rows removed, and fully empty columns dropped if you ask for it. Parsing follows RFC 4180, the CSV standard: quoted fields may hold commas and line breaks, and a doubled quote inside a quoted field means one real quote. Nothing is uploaded: the file never leaves your device.
Honest limits. Cleaning is mechanical: it fixes spacing, blanks and exact duplicates, but it cannot fix a misspelled name, a wrong number, or two rows that mean the same thing but are written differently ("Riyadh" vs "riyadh " after trimming still differ in case, and "Riyadh" vs "Riyad" are different rows). A header row is never treated as a duplicate and never dropped as blank. Ragged rows (fewer cells than the header) are padded with empty cells so the output stays rectangular.
Why CSVs come out messy
A CSV file looks simple, one row per line, commas between fields, but real exports rarely are. Spreadsheet apps add trailing spaces, export tools leave blank lines at the end, a system that merges two lists leaves the same row twice, and a column that used to hold data sits empty after a field is retired. Import tools then choke: a blank row becomes a nameless record, a duplicate row double-counts a sale, and a stray space means "Riyadh " and "Riyadh" sort as two different cities. Cleaning before import is cheaper than fixing the mess after it lands in your contacts, shop or CRM.
This tool cleans in four passes, in this order: trim, drop blank rows, remove exact duplicates, then optionally drop columns that are empty in every remaining row. The order matters. Trimming first means a row that only looked different because of spaces becomes a true duplicate and gets removed in the next pass. Dropping blank rows before dedupe keeps the duplicate count honest. The header row is set aside before all four passes and put back on top untouched, so a header that happens to match a data row can never eat it.
Quoting, the RFC 4180 way
A field that contains a comma, a quote or a line break must be wrapped in double quotes, and a quote inside such a field is written as two quotes. So the value Say "hi", friend is stored as "Say ""hi"", friend". This tool parses and writes by that rule, which is why a comma inside an address does not split the row, and why the cleaned output re-quotes only the fields that need it.
What cleaning cannot fix
Near-duplicates are not duplicates: different capitalisation, different spelling and different date formats all survive, because guessing that two different-looking rows are "the same" would delete real data. If your file has those, sort it in a spreadsheet first, or fix the source system so it stops exporting them.
Frequently Asked Questions
Related Tools
CSV Merge & Join
Stack two CSV exports into one, or join them on a shared key column.
Compare Spreadsheets
See exactly what changed between two spreadsheet exports, cell by cell.
Excel to CSV / JSON
Extract data tables out of an .xlsx spreadsheet, privately in your browser.
Contacts to Spreadsheet
Turn a .vcf contact export into a clean, searchable CSV.
Check Out Other Popular Tools
Sitemap Checker
Check if any website has a valid XML sitemap. Verify sitemap format, URL count, XML validity, and robots.txt sitemap references.
Remove PNG Chroma Key
Free tool to remove chroma key (green screen or any solid background color) from your PNG or JPG image. Adjust the threshold and instantly download a transparent PNG.
Korean Proficiency Assessment (TOPIK Check)
Test your Korean level with our adaptive 20-question quiz. Get your official TOPIK score estimate (Level 1-6) and download a certificate.
Was this tool helpful?
Comments
Loading comments...