CSV Split

Cut one oversized CSV into numbered pieces, a fixed number of files, or one file per distinct value in a column.

Runs on your deviceDataWorkingNo account needed

What this tool does

CSV Split parses the file you hand it and writes its rows back out across several smaller ones. Three modes decide where the cuts fall: a number of rows per file, which is the way to chunk CSV exports down to something another system will accept; a fixed number of files, which divides the row count instead; or the value in a column, which sorts the rows into one file per distinct value. Whichever you pick, rows keep the order they arrived in and every data row lands in exactly one output file.

Splitting by column takes either a heading name or a 1-based column number — the placeholder shows both forms — and groups the rows by the exact text in that cell, trimmed of surrounding spaces. Files come out in the order the values were first seen, named after the source with the value appended, and any character a filesystem will not accept is replaced with a hyphen before the value itself is cut to 60 characters. The grouping is literal, so London and london are two separate groups; because the resulting names are then compared without regard to case, the second of them arrives with (2) on the end. Empty cells collect into one file labelled (blank), and a column holding more than 2,000 distinct values is refused rather than filling your downloads folder.

The two counting modes pad their numbering with a leading zero where one is needed — 01 through 12 rather than 1 through 12 — so the pieces sort correctly in a file listing. A fixed number of files is a target rather than a promise: the row count is divided by the figure you asked for and rounded up to a whole number of rows per file, so an uneven division can return fewer files than requested, and five rows across four files come back as three files of two, two and one. Tick First row is a header and that line is held aside instead of counted as data, and Repeat the header in every file, on by default, writes it at the top of each piece so every one of them opens as a proper table.

The whole job happens in this browser tab: the file is read, parsed and offered back as downloads without being uploaded, which is what makes it usable on a customer export or a payroll extract. It is not a streaming split, though: the file is read into memory and parsed in full before the first piece is written, so a very large export is limited by the device rather than by any ceiling set here. Text is decoded as UTF-8 and a byte-order mark is dropped rather than rewritten, so a file that opened cleanly in Excel before may need an explicit UTF-8 import afterwards. Rows are padded out to the width of the widest row, so a ragged file gains trailing empty cells. Pieces are always written with a .csv extension and joined with CRLF, even when a tab separator is kept, and the cuts only ever fall between rows — to take columns out instead, Column Extractor is the tool for it.

How to use it

  1. Choose the file. A .csv, .tsv or .txt file. Add several and each one is split into its own set of pieces, rather than being pooled together first.
  2. Pick where the cuts fall. Rows per file starts at 1,000 and a fixed number of files starts at 4. Splitting by column takes a heading name, matched without regard to case, or a column number such as 3 — the only form that works once First row is a header is unticked.
  3. Say what to do with the header. First row is a header keeps that line out of the data. Repeat the header in every file writes it at the top of each piece, so each one opens as a table rather than as bare values.
  4. Set the delimiters if the guess is wrong. The input separator is detected by tallying the first five lines, so name comma, semicolon, tab or pipe by hand when the columns come out shifted. Output keeps the input's separator unless you choose another.
  5. Save the pieces. Each file downloads on its own, or the whole set comes down together as a ZIP. The summary reports the rows read and the number of files written.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Getting an import past a row limit

Import screens and free plans often cap an upload at a few thousand rows. Splitting at that figure turns one refusal into a sequence of uploads that are accepted.

Sending each region or owner their own file

Split on the country, branch or account-manager column and every recipient gets only their rows, with no filtering step and no copying between sheets by hand.

Opening a file a spreadsheet will not take

Spreadsheet apps stop at around a million rows and slow long before that. Pieces of 100,000 open quickly and can be worked through one at a time.

Feeding a rate-limited API or a batch job

A script that posts a thousand records per run wants its input already in thousand-row pieces, numbered so a batch that fails can be retried on its own.

Handing over part of a dataset

One month, one team or one product line becomes a file of its own, so nothing beyond it is passed on by accident.

Questions

Is my file uploaded anywhere?
No. CSV Split parses and rewrites the file inside this browser tab, and the pieces are handed straight back as downloads. Nothing is transmitted, logged or retained, and the split works just as well with the machine offline.
Why did I get fewer files than I asked for?
Because a fixed number of files sets a chunk size rather than a file count. The row count is divided by your figure and rounded up to whole rows, so an uneven division leaves the final file short — or removes it altogether. Five rows across four files come out as three. Use rows per file when the exact count matters.
Can I split on more than one column?
No. Only the first column you name decides the grouping, so typing country, city groups by country alone — though every name in that list still has to exist, or the split stops with an error naming the one it could not find. Combine the two fields into one before splitting, or split twice, once per level, putting each result through again.
What happens to rows where that column is empty?
They are gathered into a single file labelled (blank) rather than dropped. Values are compared after surrounding spaces are trimmed, so a cell holding nothing but spaces counts as empty too.
Does every piece keep the column names?
Yes, while Repeat the header in every file is ticked, which it is by default. Untick it and only data rows are written, which is what a bulk loader that already knows its own schema usually expects.
Can it split a .tsv, and do the tabs survive?
Yes to both. The separator is detected from the first five lines and the output keeps it unless you choose another. The extension does not follow, though: every piece is written as .csv, so a tab-separated result carries a .csv name and may want renaming.
Is there a limit on file size or on the number of pieces?
No size limit is imposed — the file is read into memory whole, so your device decides what is comfortable. The number of pieces is capped at 2,000, and a request above that is refused up front with the count it would have produced.
Do the pieces add up to the original file?
Near enough, but not exactly. Repeating the header adds a line to each piece, blank lines are dropped by the parser, short rows are padded to the width of the widest row, and quoting is recalculated for the output separator. The values themselves — numbers, dates, leading zeros — are carried across as text with no reformatting.
How do I put the pieces back together?
CSV Merge stacks them into one table again. To look through a large file before deciding where to cut it, CSV Viewer opens it without a spreadsheet, and Data Sampler takes a representative slice instead of the whole thing.

Related tools

  • JSON to CSV — Flatten a JSON array into a CSV table.
  • CSV to JSON — Turn a CSV file into structured JSON.
  • CSV Viewer — Open and browse a large CSV without a spreadsheet app.
  • CSV to Excel — Convert CSV files into an XLSX workbook.
  • Excel to CSV — Export spreadsheet sheets to CSV.
  • CSV Merge — Combine multiple CSV files with matching columns.