CSV splitter — break a large CSV into smaller files

Load a CSV or Excel file and split it into smaller CSV files, either a fixed number of rows per file or a chosen number of equal parts, with the header row copied into every part and all files in one ZIP.

Live demo · real result from this tool

Drop your file here

or paste with Ctrl+V · nothing is uploaded

Or paste CSV / TSV in the box below. Excel files (.xlsx) use their first sheet.

Split by
Rows per file, or the number of files.

Loading the tool…

Processed on your device — nothing is uploaded.

How to use the CSV splitter

  1. Press Choose a file to load a .csv, .tsv, .txt or Excel file, or paste rows into CSV data.
  2. Check the Delimiter and whether the First row is a header.
  3. Choose Split by: Rows per file or Number of files, and type the amount in How many.
  4. Keep Repeat the header row in every file ticked, and optionally set a File name prefix.
  5. Press Download all (.zip) to save every part at once, or use the download icon beside a single file.

What it does and when to use it

Large exports are awkward to handle. A contact list of 60,000 rows may be too big for an email tool that takes 10,000 at a time; a product feed may need batches for a shop upload; a data file may be easier to share with a team as one piece per person. The splitter cuts the file into ready-to-use parts without opening a spreadsheet program.

Clean the file first with the CSV cleaner so blank lines are not counted as rows. If you only need some of the columns in each part, run the CSV column extractor before splitting. To join parts back together later, use the CSV merger.

How it works

The file is read and parsed in your browser with PapaParse (Excel files with SheetJS, first sheet only). Blank lines are skipped. In Rows per file mode the data rows are cut into blocks of that size, and the last block holds whatever is left. In Number of files mode the row count is divided as evenly as possible.

Each part is written with the same delimiter as the input, quoted only where a field needs it, and ends with a line break. Files are named with the prefix and a number: part-1.csv, part-2.csv for pasted text, or <file name>-part-1.csv for a chosen file. Characters that are not allowed in file names, such as / and :, are replaced with a dash. The ZIP is built on your device, and nothing is uploaded.

Worked examples

The sample has a header and 8 sales rows (Region, Quarter, Product, Revenue).

3 rows per file (the default). Three files of 3, 3 and 2 rows, each starting with the header:

File | Rows | First data row | Last data row
part-1.csv | 3 | 1 | 3
part-2.csv | 3 | 4 | 6
part-3.csv | 2 | 7 | 8

Two equal halves. Number of files 2, prefix “half”: half-1.csv holds rows 1–4 and half-2.csv rows 5–8.

Header only once, unsafe prefix. 5 rows per file, header not repeated, prefix “batch/2026”. The slash becomes a dash, giving batch-2026-1.csv (header plus 5 rows) and batch-2026-2.csv (rows 6–8, no header).

Limits and tips

  • Very large files are held in memory, so a file of hundreds of megabytes may be too much for a phone. Files over 4 MB are processed in a background worker to keep the page responsive.
  • Excel files are split from their first sheet only, with cells as they are displayed.

Frequently asked questions

Why would I split a CSV?
Many systems limit how many rows one upload may contain, for example a mailing tool, a CRM import or a marketplace listing sheet. Some spreadsheet programs also become slow with very large files. Splitting gives you pieces that fit the limit.
Does each part keep the header row?
Yes, by default. Untick "Repeat the header row in every file" and only the first part gets it. If "First row is a header" is unticked, the first row is treated as data and the header option is hidden.
How are rows shared out when I choose a number of files?
As evenly as possible. Ten rows into three files gives 4, 3 and 3; the earlier files take the extra rows. You never get more files than there are data rows.
Is there a limit on the number of files?
Yes, 500. If your settings would create more, the tool asks you to use a larger number of rows per file instead.
Are rows shuffled or sorted?
No. Rows stay in their original order, and the Parts table tells you which data rows went into each file.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close