Split a Large CSV Into Smaller Files

Too many rows for Excel to open, or a file you need to feed in chunks? Drop it below and split it by row count or into a set number of files — the header is copied into every part. Download them all as a zip. Nothing is uploaded.

Quick Answer: CSVUndo splits massive CSV files exceeding spreadsheet row limits (such as Excel's 1,048,576 row ceiling) into smaller, manageable chunks with preserved headers. It generates a ZIP file 100% locally in your browser without server uploads.

Drop your CSV file here or click to choose a file — it opens in your browser tab, never on a server
up to 250 MB on a capable Chrome/Edge machine; less in Safari, Firefox, or on lower-memory devices — everything is processed on your device

No file to hand? Any of the broken-CSV samples will do — try sample-duplicate-rows.csv split into 2 files to see the header repeated in each part.

How to split the file
Output options for each part

Excel-safe wraps long numbers and zero-led codes as ="00501", so Excel reads them as text and cannot re-damage them when a part is opened. Leave it off if the parts go straight into another system, which may show the = literally.

🔒 Try it: switch off your Wi-Fi — the split still runs, because your file never leaves this tab. We can't read, store, or leak what we never receive. Prove it in 30 seconds →

When you’d split a CSV

The usual trigger is size. An Excel worksheet stops at 1,048,576 rows, so a bigger CSV is silently truncated when you open it — every row past the limit just disappears. Even below that, a multi-hundred-megabyte file can be painfully slow to open. Other times a system only accepts uploads up to a certain row count or file size, so you need the data in even chunks. Splitting solves both: each part is small enough to open or upload, and because every row lands in exactly one part, nothing is lost.

By rows, or into a set number of files

Two ways to divide it, depending on what the other end needs:

The two ways to divide a file and when each one fits
OptionWhat it doesGood for
By rows per fileEach part has up to the row count you set (plus the header)A hard per-file row/size limit downstream
Into N filesThe data is divided into that many roughly-equal partsSharing the work into a fixed number of pieces

Either way, the header row is copied to the top of every part, so each file opens with the right column names and imports cleanly on its own. Download them all in a single zip, or grab any one part on its own.

Need the opposite — combine files instead?

If you have several CSVs to join back into one, use the merger; and if a part still won’t open cleanly in Excel, the repair tools fix the usual damage.

Open the CSV merger →

What it does and doesn’t do

The splitter divides by row position, not by meaning. It doesn’t group rows by a column value (all of one customer together, say) — it simply cuts the file into sequential blocks with the header repeated. That’s exactly what you want for “make this openable” or “chunk it for upload,” but if you need to split by category, that’s a filtering job, not this. Everything runs in your browser, so even a very large file is processed on your own machine and never uploaded.

Related

Combining files instead of splitting them? See the CSV merger and the guide on merging multiple CSV files. Splitting because Excel mangled the file? Fix that first with the repair tools, or read opening a CSV in Excel without breaking it. If Excel refused the file outright or showed only part of it, read what to do when a CSV is too big for Excel — it covers the 1,048,576-row ceiling and how to tell whether rows were silently dropped. Browse all guides.

Frequently asked questions

How do I split a large CSV file into smaller ones?

Drop the file into the splitter above, choose a maximum number of rows per file or a number of files to split into, and click Split. Each part keeps the header, and you can download them all in one zip or individually. It runs in your browser, so even a large file is never uploaded.

Why won’t my CSV open fully in Excel?

Excel worksheets stop at 1,048,576 rows, so a bigger CSV is truncated on open and you silently lose every row past the limit. Very large files can also be slow or impossible to open. Splitting into parts under the limit lets you open each one, and nothing is lost because every row ends up in exactly one part.

Does each split file keep the header row?

Yes. The first row is treated as a header and copied to the top of every part, so each file is independently usable. If your file has no header, untick First row is a header and the rows are split without repeating the first line.

Is my file uploaded when I split it?

No. The splitter reads the file with the browser’s own FileReader and creates the parts locally in JavaScript. The file never leaves your device, and the zip is assembled in the browser too.