Developer tools
CSV Clean Cells
Clean selected columns. Keep what matters.
Processed in your browser
1 CSV input
Choose a UTF-8 CSV file or paste CSV below.
Enable JavaScript to clean CSV.
2 Choose cleanup
Order: Trim → Collapse → Case
Each run starts from your original input. Only checked operations change selected data cells.
3 Results
No output yet
Changed cells will appear here after cleaning.
| Record | Column | Original value | Cleaned value |
|---|
The preview shows the first 25 changes; counts and downloads include all records. Export uses the input delimiter, quotes every field and writes UTF-8 with LF record separators, no initial BOM and no final record terminator.
How to use
Add your CSV
Choose a UTF-8 file, paste text or load the example: columns are read immediately, and again when you change the delimiter or header setting. After typing edits, select Read columns.
Choose cleanup
Select columns by position and choose the operations. All columns start selected; the first row is excluded when the header option is checked.
Review and save
Clean cells, check the changed-cell counts and preview, then copy or download. Changing an option clears the old download until you run again.
What stays unchanged?
Unselected field strings, row order and uneven row lengths stay intact. Quotes and delimiters inside fields are treated as data. Leading zeros and long numbers stay as text. No rows or columns are removed and missing cells are not filled.
Embedded newlines stay in unselected cells; trimming can remove them at selected cell edges, and collapsing replaces them throughout selected cells. A pasted textarea follows the browser’s LF convention; file input retains embedded line endings.
Whitespace and case
Trim and collapse use JavaScript’s Unicode-aware whitespace set, including nonbreaking spaces. Zero-width spaces are not part of that set. Case uses default Unicode mappings, with no language-specific locale or title-case guessing. Case conversion can change string length, for example ß to SS.
Values are never inferred as dates or numbers. Spreadsheet apps may interpret formulas and numeric strings when opening CSV; import columns as text to retain literal values. This cleaner does not add formula prefixes.
Frequently asked questions
How are delimiters, headers and empty rows handled?
Auto-detection tries comma, semicolon, tab and pipe. An uncertain result falls back to comma with a notice. Check the column labels and choose explicitly if needed. Use consistent LF, CRLF or CR separators between input records. Duplicate and blank headers are allowed because selection uses column positions. Empty input has no records; blank records and quoted empty cells remain. A final record separator terminates the preceding record.
What if no cells need cleaning?
The result explicitly says no cell values changed. You can still download normalized CSV. Each cell counts once even if multiple operations change it. Record numbers in the preview include the header; headers never contribute to counts when excluded.
Can I use a large or malformed file?
There is no configured file, row or character limit. Parsing, cleaning and export run in your browser, with the complete input and output held in memory. Browser resource limits can cause failure. Cancel stops processing and retains the input for retry. Malformed quotes, invalid UTF-8 and files that look like UTF-16 give errors instead of partial results; a quote error names the record where parsing stopped. A replacement file that cannot be read leaves the current input and result in place. File extension and MIME type do not decide parsing.
Are files uploaded or stored?
No. Files and names are not uploaded, logged or persisted. Reset releases the selected input and result and revokes the download URL. It cannot remove downloads or clear your clipboard. Clipboard line endings may follow your operating system; downloading preserves the output bytes.