forgehub. A small, independent toolbox

CSV Workshop

How to clean a CSV with CSV Workshop: import to download

Choose the CSV delimiter, open a UTF-8 file or paste text, select cleaning options and press Clean & preview. Check the removal counts and first 50 cleaned rows, then select Download CSV to save all cleaned rows. CSV Workshop preserves your input text; edits or errors require a fresh successful clean before downloading.

Open CSV Workshop

Start with the delimiter and a sample

CSV Workshop cleans small text exports through three optional operations: trim cell whitespace, remove empty rows and remove duplicate rows. Start with Use sample to see the workflow before loading your own data. It includes quoted commas, escaped quotes, an embedded line break, an empty row and a duplicate. Select Clean & preview to process it; loading the sample alone does not clean it.

For your own export, choose Comma, Semicolon, Tab (TSV) or Pipe under Input & output delimiter before selecting a file. You can also paste CSV text. The app does not detect the delimiter automatically, and the same choice governs the download. If semicolon-separated data appears as one column with semicolons inside the cells, check that choice before continuing. A successful parse alone does not prove you chose the intended separator.

Choose what should count as a duplicate

All three cleaning options start enabled, and each can be turned off independently. Their order matters: trimming runs first, empty-row removal second and duplicate removal last. Trimming removes whitespace at cell edges, including edge line breaks. Turn it off when that whitespace carries meaning in your export.

For example, a two-cell row containing " Ada " and " London " becomes the same as a row containing "Ada" and "London" when trimming is enabled. With duplicate removal enabled, only the first remains. Matching uses the entire row and is case-sensitive: "Ada" and "ada" remain different. There is no option to match duplicates by an email column or customer ID.

An empty row means every cell is blank or whitespace-only, even when trimming is off. The first row receives no special header protection, so trimming and duplicate removal apply there too. If an identical header appears again later in an export, it can be removed as a duplicate; the app does not identify header rows by meaning.

Read the proof before saving

Select Clean & preview, then compare rows in, rows out, empty removed and duplicates removed. These counts help explain what disappeared. Inspect the table for the intended columns and values. Cleaning leaves the original text in the input box unchanged, so you can alter the options and process that same input again.

The table shows the first 50 cleaned rows and every column. Scroll within the preview to inspect wide data. Download CSV includes every cleaned row, including those beyond row 50. If all rows were removed, the app explains that the current download is an empty CSV; turn off an option and clean again if that was unintended.

Fix errors and refresh changed results

Input must fit within 2 MiB of UTF-8 text, 20,000 rows and 200 columns. Rows need consistent field counts, with an exception for physically blank lines. Quoted fields can contain delimiters and embedded line breaks, and a quote inside a quoted field is represented by two quotes. An unclosed quote produces an error rather than a repaired file.

For a field-count error, check the selected delimiter and missing values before deleting rows. For a file encoding error, export the source as UTF-8 and try again. File loading validates data before replacing existing input. An error can leave the previous preview visible, but downloading is disabled. Editing text, the delimiter or options also disables downloading: select Clean & preview again and confirm the new result.

Download deliberately and keep the limits in mind

Select Download CSV when the current proof is ready. The app requests a file named cleaned.csv; your browser controls its save location. Output uses UTF-8 without a byte-order mark, CRLF record separators and quoting where needed. It preserves string values such as leading-zero identifiers. It does not provide column editing, encoding conversion or spreadsheet workbook support.

Formula strings are preserved, not neutralized. The app treats values as text, but a spreadsheet may interpret formulas when opening the exported CSV. Review untrusted values before opening that file in a spreadsheet. Input and results remain in tab memory without uploads or saved history. Download anything you need before using Clear / reset or reloading, because the app does not restore the working data.

AI-assisted ForgeHub editorial. App capabilities were checked against its implementation; this guide is not an independent review.

Frequently asked questions

Can I remove duplicates using just one column?

No. Duplicate removal compares complete rows exactly and case-sensitively, after any enabled trimming. It keeps the first matching row. There is no column-key selection.

Does the first row count as a header?

No. It is ordinary data and receives the same cleaning as every other row. This means a repeated identical header can be removed by duplicate removal.

Why is Download CSV disabled while a table is still visible?

The table can be an older result. Edits, option changes and errors disable downloading. Run Clean & preview successfully again to refresh the result and enable the button.

Will the download stop after the 50 preview rows?

No. The preview shows at most 50 cleaned rows, while the download includes all cleaned rows. Input limits still apply; the preview limit does not raise them.