In short: RowSlice's free CSV splitter cuts a CSV that is too big for Excel into multiple smaller files: by rows per file (1,000,000 fits on an Excel worksheet, which Microsoft caps at 1,048,576 rows), by maximum file size, or into a set number of files. Every part starts with the header row, and no row is ever cut in half, even one with line breaks inside quoted values. The file is read from your disk a few megabytes at a time and never uploaded; in Firefox, a 1 GB file with 25 million rows was split with every row intact.
How to Split a Large CSV
- Choose or drag in the CSV file. It is not uploaded, so even a multi-gigabyte file is ready in a second.
- Choose how to split: rows per file (best for Excel), maximum size (best for upload forms and email limits) or number of files (best for sharing work out between people or machines).
- Press Split File. Parts are named
yourfile-part-001.csv,yourfile-part-002.csvand so on. - Download all parts as a ZIP or, in Chrome and Edge, save them straight into a folder.
Which Split Mode to Use
| You want to… | Use | Suggested setting |
|---|---|---|
| Open the data in Excel | Rows per file | 1,000,000 |
| Open it in Google Sheets | Rows per file | A little under 20,000,000 ÷ number of columns, e.g. 950,000 for 20 columns |
| Import into a tool with an upload limit | Maximum size | A little under the limit, e.g. 95 MB for 100 MB |
| Attach to an email | Maximum size | 20 MB (or ZIP each part) |
| Split a CSV in half | Number of files | 2 |
| Divide work between 4 people | Number of files | 4 |
Example: What You Get
Say yourfile.csv has a header row and 2,500,000 rows of data, and you keep the default of 1,000,000 rows per file. You get three files:
| Output file | Rows of data | Contains |
|---|---|---|
yourfile-part-001.csv | 1,000,000 | Header row + rows 1 to 1,000,000 |
yourfile-part-002.csv | 1,000,000 | Header row + rows 1,000,001 to 2,000,000 |
yourfile-part-003.csv | 500,000 | Header row + rows 2,000,001 to 2,500,000 |
The header is not counted in the 1,000,000, so each full part has 1,000,001 rows including the header, still under Excel's 1,048,576. The last part holds whatever is left over. Download All as ZIP gives you the three parts together in yourfile-split.zip.
Why Excel Says the File Is Too Large
An Excel worksheet has a hard limit of 1,048,576 rows and 16,384 columns, the figures Microsoft publishes in its Excel specifications. When a CSV has more rows, Excel loads the first 1,048,576 and shows the warning “This data set is too large for the Excel grid”. The rows past 1,048,576 are missing from the sheet, and saving from Excel writes that shortened version back over the CSV. Well before that limit, a file of several hundred megabytes can make Excel slow or stop responding, because Excel works out cell types and formatting for every value. Other programs stop at other numbers: the row and size limits of Excel, Google Sheets and common importers are listed side by side, each with its source.
Splitting the CSV into parts under the limit is the simplest fix when you need to look at, clean or share the data in a spreadsheet. If you only need a subset — one region, one customer, one month — splitting by column value usually gives you smaller, more useful files. If Excel refuses a file that is under the limit, or shows a message about something other than rows, see why a CSV won't open in Excel at all, which goes through each message and its fix.
Splitting is not the only answer to a file Excel will not open. When you only want to read the data, RowSlice's CSV viewer pages through and searches the file where it sits and writes nothing at all. When you only need enough rows to try an import or a script, the sampler pulls the first rows, every nth row or a random slice out of the file, and the same seed takes the same sample every time. Split the file when every row has to end up somewhere.
Can You Split a CSV in Excel?
Not with one command: Excel has no feature that splits a file. If the CSV opens completely — at most 1,048,576 rows including the header, so 1,048,575 rows of data — you can copy the header and a block of rows into a new workbook, save that as CSV, and repeat for each block, or write a VBA macro that does the copying. The parts keep whatever Excel changed while it opened the file, though. Codes that lost their leading zeros are saved without them, and in our test current Excel for Windows saved a 16-digit ID as 4.53212E+15, the E+ form it shows long numbers in, rounded to six significant digits.
If the file has more rows, the sheet Excel shows is already missing the rest, as described above, so splitting it cannot give you those rows. Power Query, Excel's import tool, reads past the limit. In Excel for Windows, open a blank workbook, go to Data › From Text/CSV, choose the file and press Transform Data. In the Power Query Editor, delete the automatic Changed Type step under Applied Steps so codes and long numbers keep every digit. If a value in the file contains a line break, also open the settings of the Source step and set Line breaks to Ignore quoted line breaks; with Apply all line breaks, that value is split across two rows. Then use Home › Keep Rows › Keep Range of Rows with a first row of 1 and 1,000,000 rows, press Close & Load, and save the new sheet as CSV UTF-8. Repeat with a first row of 1,000,001 for the second part, and so on.
The splitter at the top of this page does all of that in one run, with the header in every part and every value copied exactly as the file has it.
What Makes This Different from Other CSV Splitters
RowSlice's CSV splitter writes each part to your disk while it is still reading the rest of the file, a few megabytes at a time, so it never needs the whole file in memory, and memory use stays about the same however big the file is. There is no upload to wait for: the split starts as soon as you press the button, and your data stays on your computer. It understands quoted values with commas and line breaks, and keeps your values exactly as they are.
If you would rather run a script, for example to split the same export every week, you can split a CSV with PowerShell, Bash or Python. The guide's tested scripts keep the header in every part, and the guide explains why splitting by line count can cut rows in half.
Splitting a Tab, Semicolon or Pipe-Delimited File
The splitter detects comma, semicolon, tab and pipe from the start of the file and shows the one it found beside the file name, such as tab separated. If each row lands in one column of the preview, set the Delimiter under Advanced Options. The setting matters even though the delimiter is never changed: a quote opens a quoted value only at the start of a field, so with the wrong delimiter a line break inside quotes can be taken for the end of a row.
Rows and the repeated header are copied as the file holds them, delimiter and quotes included. Every row ends with the line ending of the file's first row, so mixed Windows and Unix line endings come out as one kind. The parts are always named .csv, so a tab-separated orders.tsv gives orders-part-001.csv, tabs and all.
The parts are always UTF-8. A UTF-8 file without a byte order mark gives parts without one; a file with one, or in Windows-1252 or another encoding, gives parts that each start with a UTF-8 byte order mark, which Excel needs to show accented characters correctly. Some importers read that mark as part of the first column name; for those, convert the file to UTF-8 without a BOM first and split the result.
What to Do with the Parts Afterwards
Part numbers have three digits, so up to part 999 the files sort by name in their original row order. Download All as ZIP puts them in one archive; in Chrome and Edge, Save All to a Folder writes them straight into a folder you choose. Each part in the result list also shows its row count and size and has a Download button of its own.
An import screen usually asks for a .csv file rather than a ZIP, so unzip the archive and upload the parts one at a time. How to split a CSV to fit an import limit lists the published limits of common tools and how to choose a part size.
Before the first upload, check a part for broken rows, unclosed quotes and a delimiter other than a comma. Every part starts with the same header and uses the same delimiter, so a fault in either shows up in whichever part you check.
When the parts need to be one file again, merge them back into one. The merger keeps a single header row and stacks the files in the order its file list shows, which is the order your system hands them over, so check that the list runs from part 001 upwards before you merge.
Last updated .