Skip to content

File & Data Tools

Split a CSV file

Chunk by row count for upload limits, or split by a column so each value gets its own file.

  • Free, no signup
  • No upload — runs on your device
  • No watermark
  • Unlimited use

Split CSV

Processed locally
Drop a CSV file here

or click to browse

Splitting by column is a group-by that produces files

Row-count splitting exists because something downstream has a limit: an import tool that caps at 10,000 rows, an email attachment size, a spreadsheet that gets sluggish past a certain point. It is arbitrary and the boundaries mean nothing.

Column splitting is different in kind. Splitting a national sales file by the region column produces one file per region — each one is a complete, self-contained dataset for that region, ready to send to the person who owns it. The header row is repeated in each file, so every output opens correctly on its own.

The trap is cardinality. Split by region and you get eight files. Split by customer_id and you get forty thousand, which will hang your browser and produce a ZIP nobody can use. This tool refuses above 300 distinct values, which is the point where a per-file split has stopped being useful and you actually wanted a pivot table.

How it works

  1. Drop in a CSV
  2. Choose to split by row count or by a column value
  3. Click Split and download the ZIP
Why nothing uploads. Every operation on this page happens inside your browser using JavaScript and WebAssembly. Your file is read into memory, processed, and offered back as a download. It is never transmitted. Disconnect from the internet after this page loads and the tool keeps working.

Frequently asked questions

Should I split by row count or by column?
By row count when something downstream has a size limit. By column when each output file is destined for a different person or system — each one is then a complete dataset in its own right.
Does each output file get a header row?
Yes. Every chunk repeats the header, so each file opens correctly on its own without you having to remember which one was first.
Why does splitting by a column sometimes fail?
Because the column has too many distinct values. Above 300 the tool refuses rather than generating thousands of files. A column with that much variety usually calls for a pivot or a database query, not a file split.
What happens to values with slashes or spaces in the filename?
They are replaced with underscores so the filenames are valid on every operating system. The data inside the file is untouched.
Are the chunks in the original row order?
Yes for row-count splitting. For column splitting, rows within each file keep their original relative order.