CSV Splitter (by rows)
Split a large CSV into smaller chunks by row count — repeat the header on each chunk, download all at once.
Drop a CSV or paste contents to get started.
How to use
- Drop a
.csvfile (or paste contents). - Pick how many data rows per chunk and whether to repeat the header.
- Click each chunk's download button, or 'Download all'.
About this tool
ShowHide
Drop or paste a CSV, set how many data rows each chunk should hold, and get evenly sized files you can download one by one or all at once. The count is of records, not lines, which is the distinction that ruins a naive split: a quoted field may contain line breaks, and those rows stay whole here instead of being cut in half. The header can be repeated at the top of every chunk, so each file opens correctly on its own and can be imported without stitching anything back together first. Parts are numbered name.part01of04.csv, zero-padded so they sort in the right order in any file manager or shell glob. Everything runs in the browser — your data never leaves the page.
Frequently asked questions
Does it understand quoted fields with newlines?
Yes — a quoted field can contain \n or , without breaking the row count.
Where does the file go?
Nowhere. Splitting is done in your browser; downloads come from in-memory blobs.
How big a file can I split?
Constrained by your browser's memory. Tens of MB is fine; for 500 MB+, prefer a desktop tool.
Why 'rows per chunk' and not 'number of chunks'?
Most CSV import limits are expressed as row count (BigQuery 1M, Excel 1M, Stripe 100k…) — splitting by row makes those limits trivial to hit.
How do I put the parts back together?
If the header was repeated, drop the first line of every part except the first and concatenate. On macOS or Linux that is one command: head -1 name.part01of04.csv > all.csv, then tail -n +2 -q name.part*.csv >> all.csv.
Should I repeat the header in every chunk?
Repeat it when each part will be opened or imported on its own, which is the usual reason to split. Leave it off when the parts are going back together as a stream, since a header appearing partway through the data is worse than none at all.
Guides on this topic
Related tools
File Splitter
Split a large file into smaller chunks to bypass attachment or upload size limits.
File
CSV Transpose — Swap Rows and Columns
Transpose CSV data so rows become columns and columns become rows, in your browser.
Text
Text Template (Mail Merge)
Write a template with {{placeholders}}, paste rows of data (CSV or JSON), and render one personalised text per row — entirely in your browser.
Text
BMP / DIB Inspector
Open a .bmp or .dib in your browser: header version, bit depth, row order, compression, colour masks, palette, and where every byte of the file goes.
File
Bulk File Renamer Preview
Drop files and preview a batch rename — pattern with {n}, {name}, {ext}, {date}, plus find/replace, case modes, and collision detection.
File
WebP File Inspector
Walk a .webp file’s RIFF chunks in your browser: lossy, lossless or extended, canvas versus frame size, animation timing, alpha, ICC, Exif and XMP.
File