How to Split Huge CSV Files with Millions of Rows
Techniques for splitting multi-million row CSV files without running out of RAM or dealing with software crashes.
Microsoft Excel has a strict hard limit of 1,048,576 rows by 16,384 columns. When you try to open a database CSV export containing 2,000,000 rows, Excel will truncate everything after row 1,048,576 with a warning: “The file was not loaded completely”.
To analyze all your data, you must split the large CSV into smaller segments first.
Solution 1: Split Online with SplitXL
SplitXL CSV Splitter streams CSV files in chunks using modern Web Worker threads.
- Auto-detects delimiters (comma, semicolon, tab, pipe).
- Correctly parses multi-line fields enclosed in quotes without splitting mid-record.
- Emits UTF-8 files with BOM so non-English text displays properly in Excel.
- Divides files into 50,000 or 100,000 row chunks ready for Excel.
Solution 2: Command Line (Linux / macOS / Git Bash)
If you are comfortable using the terminal, the Unix split command is built-in:
# Split huge_file.csv into chunks of 500,000 lines
split -l 500000 huge_file.csv part_ --additional-suffix=.csv
Caveat: The standard split command does not repeat the header row on subsequent parts and will break multi-line quoted fields.
Solution 3: Python Script for Gigantic Files
For multi-gigabyte files:
import pandas as pd
chunk_size = 500000
for i, chunk in enumerate(pd.read_csv('huge_file.csv', chunksize=chunk_size)):
chunk.to_csv(f'part_{i+1}.csv', index=False)
Summary
For instant, private splitting without installing Python or using terminal commands, SplitXL provides the easiest browser-based workflow.
Ready to Split Your Excel File?
Try SplitXL now — 100% free, private in-browser tool with zero data loss guarantee.
Open SplitXL Tool