🧮

CSV Toolkit

Merge, split, deduplicate and clean CSV files — parsing and editing happen in your browser, so even large exports stay private.

Free Private – No Upload Works in Browser
🧮
Drop CSV files here
or click to browse — add several files to merge them
CSV · TSV · TXT

The parts spreadsheets make painful

Merging exports

Stacking twelve monthly exports into one file is tedious in a spreadsheet and trivial here — headers are matched by name, so column order between files does not have to agree.

Splitting for upload

Most import tools cap rows per file. Split by row count to get an even set of chunks, or split by a column value to get one file per region, owner or status.

Cleaning before import

Duplicate rows, stray whitespace and empty lines are the usual reasons an import fails validation. Clearing them first turns a rejected upload into a clean one.

Frequently asked questions

Is there a file size limit?

No server limit, because nothing is uploaded — parsing happens in your browser. Files in the tens of megabytes and hundreds of thousands of rows work fine on a desktop; very large files are constrained only by your device memory.

How are quoted fields and embedded commas handled?

The parser follows RFC 4180: fields wrapped in double quotes may contain commas, newlines and escaped quotes, and are preserved correctly through every operation and on export.

What happens when merged files have different columns?

Columns are matched by header name, and the merged output contains the union of all columns found. Rows from a file missing a given column get an empty value for it rather than being misaligned.

Can it handle semicolon or tab separated files?

Yes. The delimiter is detected automatically from the first line, and you can override it manually if the guess is wrong — useful for European CSV exports that use semicolons.

Does deduplication compare whole rows or one column?

Both are available. By default entire rows are compared, but you can instead pick one or more key columns so that rows count as duplicates when just those fields match.