Snassi CSV cleaner

Snassi CSV cleaner

Clean CSV files directly in you browser

Upload your CSV

Drop a CSV file here or choose a fileSupports .csv files (max 25 MB)
Sample CSV format
NameEmailCity
John Doejohn@example.comNew York
Jane Smithjane@example.comSan Francisco
Bob Johnsonbob@example.comChicago

Cleanup options

Cleanup
Columns
No CSV loaded.

CSV result

Ready for a CSV file
0 rows after cleanup0 duplicates removed0 empty rows removed0 total changes
Your cleaned CSV preview will appear here.

Private by design

Your CSV file stays on your device. CSV files are processed locally in your browser and are never uploaded to SnassiDevs.

How it works

1. Add your CSV

Drop, select or paste CSV data.

2. Clean it

Remove empty rows, duplicates and unwanted formatting.

3. Export

Download the cleaned CSV file.

CSV Cleaner functions explained

Learn what each CSV Cleaner option does before processing and exporting your file.

Upload your CSV

Select a CSV file from your device. The browser reads it locally; it is not uploaded to WordPress or SnassiDevs. CSV files up to the current 25 MB limit are supported.

Drag and drop a CSV file

Drag a .csv file onto the upload area. Dropping a file behaves like choosing it manually, and the file remains local to your browser.

Choose a file

Opens your browser’s file picker so you can select a CSV. Loading another file replaces the current CSV state.

Paste CSV data

Reveals a text area for raw CSV copied from another application. Select Load CSV after pasting; the data stays local and must be loaded before it can be cleaned.

CSV preview

Before loading data, the sample table demonstrates the expected tabular structure. After loading, the preview shows parsed data and is capped at the first 100 rows for performance. Cleaning, copying, and downloading still use the complete dataset—not only visible rows.

Trim whitespace

Removes leading and trailing whitespace from every CSV cell value. For example, John Smith becomes John Smith. Column headers are not transformed.

Remove empty rows

Removes rows where every cell is empty or whitespace-only. A partially filled row such as John,,Copenhagen is retained.

Remove duplicate rows

Enables duplicate removal. The exact match depends on Duplicate matching; the first matching row is preserved and later matches are removed.

Remove extra spaces

Collapses repeated inline whitespace within cell values, including spaces and tabs. It helps normalize inconsistent imported data while preserving meaningful cell content.

Duplicate matching

Entire row compares the applicable row values. Selected column uses one chosen column as the duplicate key. In both modes the first match is kept; selected-column matching is exact after the chosen transformations.

If using a column

Becomes available when duplicate matching is set to Selected column. Choose a field such as Email, ID, URL, or SKU. Rows with an empty value in that column are retained rather than treated as duplicates of other empty values.

Text case

No change, lowercase, UPPERCASE, and Title Case apply to data cells. CSV column headers remain unchanged.

Find & replace

Searches all data cells for literal, case-sensitive text and replaces every match. Regex is not used, and headers remain unchanged. For example, finding Denmark and replacing with DK changes those cell values throughout the dataset.

Columns

Columns are detected from the CSV header row. Checked columns appear in the cleaned preview and export; unchecked columns are omitted while the original source data remains intact. At least one column must remain selected. A selected duplicate-matching column can still be used even if it is excluded from export.

Clean CSV

Applies the selected settings to the originally loaded CSV, not to a previous cleaned result. It updates statistics, creates the cleaned preview, and prepares the complete output for copying or downloading—all locally in the browser.

Rows after cleanup

Shows the number of data rows remaining after cleanup. The CSV header row is not counted.

Duplicates removed

Shows how many rows were removed by duplicate detection. The number depends on whether matching uses the entire row or a selected column.

Empty rows removed

Shows how many fully empty rows were removed. Rows with at least one non-empty cell are not counted.

Total changes

Represents changed surviving rows plus rows removed during cleanup. A row is counted once even if several cells changed; this is not a complete audit log.

Cleaned CSV preview

Shows the cleaned result with up to the first 100 rows. Copy and Download use the complete cleaned CSV, not just the visible preview. Values are inserted as text so cell content cannot execute as HTML or JavaScript.

Copy result

Copies the complete cleaned CSV as CSV-formatted text, including headers, all cleaned rows, and only selected output columns.

Download CSV

Generates a cleaned CSV locally with proper CSV escaping, the detected delimiter where possible, and UTF-8 compatibility. A file named customers.csv normally downloads as customers-cleaned.csv; pasted data uses cleaned-data.csv.

Reset

Unloads the current CSV, clears pasted data and results, resets statistics and cleanup controls, restores the initial upload state, and affects only this CSV Cleaner instance.

Is my CSV uploaded?

No. CSV files are read and processed locally in your browser. The file does not need to be uploaded to SnassiDevs in order to clean or export it.