Split CSV

Split a big CSV into smaller files.

Updated
Loading tool…

Split a big CSV into smaller files.

How to use Split CSV

  1. Upload the large CSV file you want to divide
  2. Set how many rows each smaller file should hold
  3. Split it and download the pieces as a zip
Try next →CSV to ExcelCSV into an .xlsx spreadsheet.

About Split CSV

Split CSV takes one oversized CSV and cuts it into several smaller files, using the number of rows you pick for each piece. Say a file has 40,000 rows and your import tool caps out at 10,000 — set 10,000 rows per file and you get four files back, packaged together as a single zip. It keeps every row in its original order and carries any remainder into the last file, so nothing is dropped or reshuffled.

The most common reason people reach for this is a large CSV that a spreadsheet, database import, CRM, or upload form refuses to accept in one go. It handles that, and it also covers smaller jobs: to split a file roughly in half, set the rows-per-file to about half your total; to break it into even thirds or quarters, divide your row count accordingly. It works the same on Mac, Windows, or Chromebook because it runs entirely in the browser — there's no PowerShell script to write, no Excel macro, and no desktop program to install.

Everything happens on your own machine. Your CSV is read locally with JavaScript and never leaves your device or touches a server, which matters when the data is customer lists, orders, or anything you'd rather not upload. It's free, with no account, no sign-up, and no file-size limit beyond what your own browser can hold in memory.

Frequently asked questions

Is Split CSV free to use?
Yes. It's completely free with no account and no sign-up. There's no cap on the file size or on the number of smaller files you create.
Is my CSV uploaded to a server?
No. The file is read and split locally in your browser, so your data stays on your own device. Nothing about the file is uploaded anywhere.
How do I split a CSV into multiple files?
Load your CSV, then enter how many rows you want in each output file. The tool cuts the file into chunks of that size, keeps the rows in their original order, and downloads all the smaller files together in a single zip.
How do I split a large CSV file?
This is the main use case. A large CSV that a spreadsheet, database import, or upload form won't accept can be broken into as many smaller files as you need by choosing a low enough rows-per-file number. The whole file is processed in your browser, so a big row count doesn't send anything to a server.
How many files will I get?
That depends on the row count you choose. If your file has 10,000 rows and you ask for 2,000 rows each, you'll get five files, and the last one simply holds whatever rows are left over.
How do I split a CSV in half?
Take your file's total row count and set the rows-per-file to half of that. A 5,000-row file split at 2,500 rows each gives you two files. The same trick works for thirds or quarters — just divide the total by the number of parts you want.
Can I split a CSV on a Mac?
Yes. It runs in the browser, so it works the same on macOS, Windows, and Chromebook with no Mac-specific software, Terminal commands, or downloads. Open the page in any modern browser and load your file.
Is this an easier alternative to a PowerShell script for splitting CSVs?
It can be. People often write a PowerShell script to split a CSV into multiple files, but this tool does the same row-count split with no code — you just type the rows per file and download the results. It's handy if you'd rather not open a terminal or manage a script.
Can I split a CSV without using Excel?
Yes. Splitting a big CSV in Excel usually means manual copy-paste or a macro, and very large files can be slow to open at all. This tool splits the raw file directly by row count and hands back a zip, so you never have to load the whole thing into a spreadsheet.
Does each output file keep the header row?
The tool splits purely by row position and keeps rows in their original order, so it doesn't repeat your header row at the top of every output file the way a custom PowerShell script might. If your first row is a header, it stays with the first file.
Can it split by a column value instead of by rows?
No. It only splits by row count, cutting the file every set number of rows in their existing order. It doesn't group or sort rows by the values in a column.