Guide
How to split a large CSV file into smaller files (no code needed)
Split a huge CSV into Excel-sized parts while keeping the header in every file. Compare the command-line method with a no-code option that runs in your browser.
Updated 1 October 2026 3 min read
A CSV can be too big to open, too big to email, or too big for the system you need to import it into. Splitting it into smaller files fixes all three — as long as you avoid two classic mistakes.
Mistake 1: losing the header
The first line of a CSV holds the column names. If you split a file by line count, only the first part keeps them, and the other parts open as anonymous columns. Every part needs its own copy of the header.
Mistake 2: cutting a row in half
Values in quotes can contain line breaks — addresses and comments often do. A simple “cut every N lines” approach can split one record across two files, corrupting both. A proper CSV splitter reads records, not lines.
How many rows per file?
| Goal | Rows per file |
|---|---|
| Open in Excel | Up to 1,000,000 (Excel's limit is 1,048,576 including the header) |
| Import into a CRM or email tool | Check its import limit — often 10,000 to 100,000 |
| Send by email | Aim for parts under 10–20 MB |
The command-line way (macOS, Linux)
split -l 500000 big.csv part_Fast, but it splits by lines: only part_aa has the header, and records containing line breaks can be cut.
The no-code way
A browser-based splitter streams the file, keeps the header in every part, respects quoted values and handles accented characters correctly for Excel. Nothing is uploaded, which matters when the CSV contains customer data.
And to put the parts back together?
The reverse operation — stacking several CSV files into one — is just as common with monthly exports. Columns are matched by name, so files don't even need the same column order.
Frequently asked questions
Can Excel split a CSV for me?
Not directly. Excel can only load up to 1,048,576 rows; it has no built-in command to cut a larger CSV into parts.
How do I know how many rows my file has?
On macOS and Linux, wc -l file.csv counts lines (slightly more than records if values contain line breaks). A splitter that reads the file will report the exact number of records.
Will accented characters survive?
They will if the splitter detects the original encoding (UTF-8, UTF-16 or Windows-1252) and writes the parts in a form Excel recognises, such as UTF-8 with a byte-order mark.