FormatterHQ

Split CSV File

Break a large CSV into smaller files every N rows, into N equal parts, or into one file per value of a column. Each part keeps the header row, and you can download them one by one or as a ZIP.

Loading tool…
Ready.

How to use the CSV Splitter

  1. Paste CSV, drop a .csv or .tsv file, or click Sample.
  2. Choose how to split: Every N rows, Into N equal files or By the values of a column, then set the number or pick the column.
  3. Check the list of files with their row counts and sizes.
  4. Download a single part, or click Download all as ZIP.

Split CSV files without a spreadsheet

Upload limits in import tools, attachment size limits and very long exports are the usual reasons to split CSV files. Opening a large file in a spreadsheet only to copy blocks of rows by hand is slow and easy to get wrong. This splitter reads the file once, shows you exactly which files it will create, and keeps the header row in every one of them. Everything runs in your browser, so the data is not uploaded.

Three ways to split

Every N rows

Set the number of data rows per file. A file with 2,500 data rows split every 1,000 rows gives three files with 1,000, 1,000 and 500 rows. Files are named after the source, such as orders-part-1.csv; when there are ten or more parts the numbers are zero-padded (orders-part-01.csv) so they sort correctly.

Into N equal files

Set how many files you want, and the rows are shared out as evenly as possible: 1,001 rows into 4 files gives 251, 250, 250 and 250 rows. Row order is kept, so the first file holds the first rows. If you ask for more files than there are rows, each row gets its own file.

By the values of a column

Pick a column, and every distinct value gets its own file in the order the values first appear: all “North” rows in orders-North.csv, all “South East” rows in orders-South_East.csv. Characters that are unsafe in file names become underscores, an empty value goes to …-empty.csv, and values that differ only in case (“North” and “north”) get separate files with a number added, because some systems treat file names case-insensitively. A column can produce up to 1,000 files.

The header row in every part

With First row is a header ticked, the header is copied to the top of each file, so every part can be imported on its own. Untick it for files without a header; then every row counts as data.

Example

order_id,region,total
1001,North,120.50
1002,South,89.99
1003,North,42.00

Split by the region column, this gives data-North.csv with the header and orders 1001 and 1003, and data-South.csv with the header and order 1002.

What the output looks like

  • Fields that contain the delimiter, quotes or line breaks are quoted, so a quoted value with a line break is never cut in the middle.
  • Lines end with CRLF, the CSV standard line ending.
  • The output delimiter matches the input by default; you can switch to comma, semicolon, tab or pipe.
  • Tick Add UTF-8 BOM if the parts will be opened in Excel and contain accented letters.

Each part's row count and size is listed before you download, so you can check that every file is under the limit you are working with. To put parts back together later, use Merge CSV. To look at a single part as a table, open it in the CSV viewer, and if your data is in a workbook, convert it with Excel to CSV first.

Frequently asked questions

Does every split file keep the header row?
Yes. When "First row is a header" is ticked, the header row is written at the top of every part, so each file can be imported on its own. Untick it if your CSV has no header.
Can I split a CSV by the values in a column?
Yes. Choose "By the values of a column" and pick the column: each distinct value gets its own file, named after the value. Rows keep their original order inside each file.
Is there a size limit?
Files up to 100 MB can be opened, and a split can produce up to 1,000 files. Because everything runs in your browser, very large files need enough free memory on your device.
Why do accented letters look wrong when I open a part in Excel?
Excel may read a CSV without a byte order mark in your system’s legacy encoding. Tick "Add UTF-8 BOM" before downloading and Excel will read the file as UTF-8.
Are my files uploaded?
No. The CSV is parsed, split and zipped by JavaScript in your browser, and the files are saved directly to your device.

Last updated October 17, 2026

Related tools

Table to HTML Converter Convert CSV, TSV, Markdown or JSON data into a clean HTML table with optional CSS styling and a live preview. Tableizer: Excel to HTML Table Paste cells copied from Excel or Google Sheets and get a styled HTML table. Choose header colour, font and row striping. Compare CSV Files Compare two CSV files by key column or row position: see added, removed and changed rows with old and new values, then export the differences. CSV Editor Online Edit CSV files online like a spreadsheet: change cells, add, move or delete rows and columns, sort, filter, find and replace, undo, then export. CSV to PDF Converter Convert CSV to a printable PDF table: header row on every page, fitted and wrapped columns, A4, Letter or Legal, page numbers. Made in your browser. CSV Viewer View CSV files as a clean, sortable-looking table in your browser. Auto-detects commas, semicolons, pipes and tabs. LaTeX Table Generator Convert CSV, spreadsheet cells or JSON into LaTeX tabular code with captions, labels, borders or booktabs styling. Markdown Table Generator Generate GitHub-flavoured Markdown tables from CSV, TSV, Excel cells or JSON, with column alignment and neat padding. Merge CSV Files Merge several CSV files into one: match columns by header name or position, add the source file name, remove duplicate rows. Runs in your browser. Base64 to CSV Decode a Base64 string back to CSV with syntax highlighting. Base64 to TSV Decode a Base64 string back to TSV with syntax highlighting. CSV Converter Convert CSV to JSON, XML, YAML, TSV, HTML, SQL or Markdown from a single page, with automatic delimiter detection.