CSV Cleaner

Apply chosen cleanup rules to a CSV and download the result.

Files stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Clean the CSV controls

Drop your CSV file here

or choose one from your device

One UTF-8 file up to 20 MiB, 100,000 rows and 500 columns. Use either this or the pasted text.

    Paste the table to clean, or leave this empty and choose a file. Your original text is never changed; the download is a new file.

    Without a header row, columns are numbered column_1, column_2 and so on and header options are skipped.

    A header repeated after this step gets a numeric suffix, so two columns never share one name in the export.

    Runs before duplicate comparison, so rows that differed only by surrounding spaces count as duplicates.

    Applies to every data cell, including text that only looks like a number. Leave it off when a column carries identifiers.

    Two rows are duplicates when every cell matches after the steps above. The first copy is kept.

    Stops a value that begins with = + - or @ from running as a formula when the export is opened in a spreadsheet.

    How to use CSV Cleaner

    1. Paste your rows into CSV or TSV text, or choose a file.
    2. Set Delimiter and the header row option to match the file.
    3. Choose a Header names style and tick the rules you want.
    4. Select Clean the CSV, read the change log, then download cleaned.csv.

    Example: CSV Cleaner

    Clean a small CSV that holds a padded cell, a duplicate row and a blank row.

    You add
    Text: the header id,name, then the row 0012, Ana, then the same row again, then a line holding only a comma. Remove duplicate rows: on.
    You get
    The result reports Cleaned 1 row and 2 columns, keeps one 0012 row, and downloads cleaned.csv. The duplicate row and the blank row are gone.

    Options

    Header names
    Trim surrounding spaces is the default. Snake case turns First Name into first_name, and a repeated name gets a numeric suffix such as name_2.
    Trim spaces around every cell value
    Runs before duplicate comparison, so two rows that differed only by surrounding spaces count as the same row.
    Protect spreadsheet formulas
    Stops a cell that begins with =, +, - or @ from running as a formula in a spreadsheet. The apostrophe prefix is the default, and there is an option to leave cells exactly as typed.

    Supported inputs and limits

    File sizeUTF-8 CSV or TSV up to 20 MiB
    RowsUp to 100,000 rows
    ColumnsUp to 500 columns
    UTF-8 CSV or TSV up to 20 MiB, 100,000 rows and 500 columns. Values stay strings, so 0012 keeps its leading zeroes and a date is not turned into a number. The preview shows the first 40 rows, and the download is a new cleaned.csv, so your original is unchanged. A trailing newline counts as a blank row. Empty markers run before blank-row removal, so a row filled with N/A is no longer empty and survives. Tables must stay within 2,000,000 cells; the preview shows a limited selection of rows.

    Where your input is processed

    This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

    The order the rules run in

    Header names first, then trimming, then letter case, then empty markers, then blank rows, then duplicate rows, with the formula guard last. That order is why trimming makes two rows count as duplicates, and why marking empty cells protects a blank row from removal.

    Why values stay text

    A spreadsheet turns 0012 into 12 the moment it can read a number, and a phone number into scientific notation. This cleaner keeps every cell as the string it arrived as.

    Questions about CSV Cleaner

    Why did my formula cell gain an apostrophe?

    The guard is on by default, because a value starting with =, +, - or @ would otherwise run in a spreadsheet. Choose Leave cells exactly as they are to turn it off.

    Does cleaning overwrite my file?

    No. The page reads a copy and offers a new cleaned.csv, so the file on your device is left as it was.

    Why are blank rows still present after I marked empty cells?

    Marking runs before blank-row removal, so a row whose cells all became N/A is no longer empty.

    What happens to a repeated column name?

    The duplicate gets a numeric suffix, so two columns called Name become Name and Name_2.

    Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem