Split Large CSV Files Online
Divide a CSV by row count, output count, approximate size or values in one column. Processing stays in your browser.
- Split by rows, file count, size or value
- Accepts CSV files up to 500 MB
- No uploads — files stay on your device
- Free and easy to use
Your file is processed in your browser and is not uploaded unless explicitly stated.
Why Split a CSV File?
Large CSV files are difficult to open in Excel or Google Sheets, which struggle with files over a million rows. Splitting a CSV file into smaller parts makes it easier to open, process, share, and import into systems that have per-file row or size limits.
- Database and CRM exports that exceed spreadsheet row limits
- Data pipelines where each batch needs to be a manageable size
- Sharing datasets with colleagues without hitting email attachment limits
- Preparing files for import tools with per-file restrictions
- Parallel processing — dividing data so multiple people can work on sections at once
How to Split a CSV File Online
To split a CSV file online, upload your file into a CSV splitter tool and choose how you want to divide the data — by rows, number of files, or file size. The tool processes the file and generates smaller CSV files ready to download.
Processing happens locally in your browser. The first row is treated as the header and is included in every part by default; this can be turned off in the split options.
How to use the CSV splitter
- Upload a CSV and check the detected row and column counts.
- Choose rows, number of files, approximate size, or column values.
- Decide whether each part needs the header, then split and download the outputs.
When would I use this?
- Excel has a hard limit of 1,048,576 rows — any CSV larger than this cannot be opened and data is silently truncated or the file fails to load entirely
- Even within the row limit, large files significantly slow down Excel, making sorting, filtering, and editing frustratingly slow
- Many CRM and import tools impose per-file row or size caps, making a single large export impossible to import directly
- Emailing large CSV files is often blocked by attachment size limits in most mail providers
- Batch processing workflows frequently require data to be divided into smaller files before processing can begin
Best Ways to Split a Large CSV File
- Copy rows in Excel — Works for very small files but is impractical for large datasets and impossible beyond the row limit
- Write a script — Python or Bash can split CSV files by row count, but require programming knowledge and a configured environment
- Use a browser-based CSV splitter — The fastest option for most users: no installation, no uploads, no code. Upload the file, choose your split settings, and download the results immediately
This tool supports four split modes — by row count, number of output files, maximum file size, or column values — and processes everything locally in your browser so no data leaves your device.
Things to be aware of
- Excel supports a maximum of 1,048,576 rows and 16,384 columns per worksheet
- Files larger than a few hundred MB can cause significant memory pressure in both desktop applications and web browsers
- Google Sheets limits imports to 10 million cells and files up to 100 MB
- CSV files have no inherent size limit, but practical limits are imposed by the software used to open or process them
- Splitting a file increases the number of files to manage, which can complicate downstream workflows if not automated
- The first parsed row is always treated as the header; files without headers will therefore lose that row from the data count
- Size mode is based on serialised UTF-8 bytes and is approximate; one unusually large row can exceed the chosen size
- File-count mode cannot create more non-empty files than there are data rows
- Column-value mode trims values, groups blanks as "(empty)", and supports at most 50 distinct groups
- Blank physical lines are skipped and the CSV is re-serialised, so quoting and line endings may differ from the source
Worked example
INPUT (split every 2 rows) id,email 1,a@example.com 2,b@example.com 3,c@example.com OUTPUT part 1 id,email 1,a@example.com 2,b@example.com OUTPUT part 2 id,email 3,c@example.com