Skip to Content
RowSlice

Free Online CSV Splitter

Split a Large CSV File into Multiple Files

Split a CSV that Excel or Google Sheets refuses to open into smaller files that fit. Choose rows per file, a maximum file size, or how many files you want.

  • Multi-GB files
  • Never uploaded
  • Free, no sign-up

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

  1. Choose or drag in the CSV file. It is not uploaded, so even a multi-gigabyte file is ready in a second.
  2. 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).
  3. Press Split File. Parts are named yourfile-part-001.csv, yourfile-part-002.csv and so on.
  4. 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…UseSuggested setting
Open the data in ExcelRows per file1,000,000
Open it in Google SheetsRows per fileA little under 20,000,000 ÷ number of columns, e.g. 950,000 for 20 columns
Import into a tool with an upload limitMaximum sizeA little under the limit, e.g. 95 MB for 100 MB
Attach to an emailMaximum size20 MB (or ZIP each part)
Split a CSV in halfNumber of files2
Divide work between 4 peopleNumber of files4

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 fileRows of dataContains
yourfile-part-001.csv1,000,000Header row + rows 1 to 1,000,000
yourfile-part-002.csv1,000,000Header row + rows 1,000,001 to 2,000,000
yourfile-part-003.csv500,000Header 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 .

FAQ

Frequently Asked Questions

How many rows should each file have so it opens in Excel?

Excel can show at most 1,048,576 rows on a sheet, and one of those is the header. The default of 1,000,000 rows per file leaves a comfortable margin. Google Sheets counts cells instead: up to 20 million per spreadsheet, rows times columns across every tab, with the header row counted as a row. So the most rows of data per file is 20,000,000 divided by your number of columns, minus one for the header: 999,999 for 20 columns, 399,999 for 50. Google also caps a spreadsheet created in or converted to Sheets at 100 MB, so a file with long values can fail before it reaches 20 million cells; if a part fails, use fewer rows per file. The limit was 10 million cells until Google doubled it in a rollout that began on 10 September 2026, which is why some pages still give the lower figure.

Does every part keep the header row?

Yes. When First row is a header is ticked (the default, under Advanced Options), the header is repeated at the top of every part, so each file can be opened and used on its own.

How do I split a CSV in half?

Choose Number of files and enter 2: the file is divided by size, so the two parts are about equally large, and both start with the header row. If some rows are much longer than others, the two parts can hold different numbers of rows. For an exact half by rows, or for a UTF-16 file (for example one saved from Excel as Unicode Text), choose Rows per file instead and enter half the number of data rows, rounded up. The CSV analyzer gives you the number of data rows, header not included; how to count the rows in a CSV covers other ways to get it.

Can a row be cut in half between two files?

No. Files are only ever split between complete rows, including rows whose quoted values contain line breaks. Splitting a CSV with a text editor or the split command can cut such rows in half; this tool cannot.

How exact is splitting by size or by number of files?

In size mode every part stays under the size you set, unless a single row is bigger than that on its own. In number-of-files mode the rows are divided into parts of about equal size, and you never get more files than you asked for.

Is there a size limit on the CSV I can split?

Not one set by the splitter: in Firefox, a 1 GB file with 25 million rows was split with every row intact. The file is read a few megabytes at a time, so a 10 GB file uses about as much memory as a 10 MB one. What runs out first is disk space: the parts and the ZIP both exist while the ZIP is built, so you need free space of roughly twice the size of the original, within the storage your browser allows one site (about 10 GB in Firefox).

In what order are the rows?

The original order. Part 1 holds the first rows of the file, part 2 the next ones, and so on. Put the parts back together with the Merge CSV tool and you get the original rows in the original order.

Can I split an Excel (.xlsx) file?

Not directly. The splitter reads CSV and other delimited text files (.csv, .tsv, .txt), not Excel workbooks, so save each sheet you need from Excel as a CSV file first and split that. CSV UTF-8 vs CSV in Excel explains which of Excel’s CSV formats to choose and why. A JSON export is not delimited text either: flatten it into a CSV first, then split the result.

Can I split a CSV into several Excel sheets?

Yes, when the sheets are simply the file carried on: Convert CSV to Excel writes the whole file into one .xlsx, and when the rows run past a worksheet’s limit of 1,048,576 they carry on to a second sheet, a third, and so on, with the header repeated at the top of each. What it does not do is let you choose where the breaks fall. If each sheet has to hold a particular set of rows, split the file here first — by rows, or by the value in a column — then follow combining CSV files into one Excel workbook, one sheet each, which shows how to bring the parts in without losing leading zeros.

Is there a CSV splitter to download?

No, and you do not need one: RowSlice’s CSV splitter is a web page, and it reads your file from your own disk without uploading it. The only thing you download is the result, all the parts in one ZIP file or, in Chrome and Edge, saved straight into a folder you choose.

Guides

More Tools

More CSV Tools

CSV Analyzer

Count the rows, list the columns and profile the values in a CSV too big to open.

CSV Viewer

Page through and search a CSV that is far too large for Excel, without uploading it.

Compare Two CSV Files

See what was added, removed and changed between two exports, matched on an ID column.

Take a Sample from a CSV

Pull the first rows, every Nth row or a random slice out of a huge file for testing.

Sample CSV File Generator

Download realistic test CSV files from 10 rows up to 20 GB, with messy values on request.

Split CSV by Column Value

One file for every store, region, client or status — straight from a huge export.

Filter CSV Rows

Keep only the rows you need — by value, text match or number range — from a file of any size.

Merge CSV Files

Combine multiple CSV files into one, lining up columns by name, even when the result is too big for Excel.

Remove Duplicates from CSV

Delete repeated rows from millions of records, comparing whole rows or chosen columns.

Convert CSV to Excel

Make a real .xlsx file without losing leading zeros, long IDs or turning codes into dates.

Convert CSV to JSON

Turn a CSV into a JSON array or NDJSON, with every value kept exactly as written.

Convert JSON to CSV

Flatten a JSON array or NDJSON export into a spreadsheet-ready CSV.

CSV Validator

Find the broken rows, bad quotes, wrong encoding and duplicate IDs before an import fails.

Convert CSV to UTF-8

Repair garbled characters like é by converting to UTF-8, and switch semicolons to commas.