Split CSV files by size or rows — without uploading them.

Break large CSVs into smaller files for Salesforce, HubSpot, email attachments or any 25 MB import limit. No size cap — processed locally in your browser.

No upload No account No size limit Works offline CSV · TSV · XLSX

Drop your CSV, TSV or Excel file here

CSV TSV XLSX / XLS

File never leaves your device

Everything the Split CSV tool does

Split by file size

Pick any MB target — Salesforce's 25 MB import cap, a 10 MB email attachment limit, anything. Each output file includes the original header row so every part imports independently.

Split by row count

Round-number splits — 1,000 rows per file, 50,000, or a custom value. Ideal for batch pipelines that consume a fixed number of rows at a time.

Split by number of parts

Tell the tool "3 equal files" and it figures out the row count per part. Useful when you need to distribute work across a fixed number of teammates or worker processes.

Split by column value

One output file per unique value in a chosen column — perfect for splitting by region, customer type, status, or department. Blanks go into their own file.

Pick only the columns you need

Uncheck columns before splitting. Removes bloat, keeps your output files focused, and often gets you below size limits without shrinking rows.

CSV · TSV · Excel in and out

Drop an XLSX, get CSV splits. Drop a TSV, keep it as TSV. Any combination works — including Excel dates, numbers, and booleans handled correctly.

Frequently asked questions about splitting CSV files

Is my data safe? Does anything get uploaded?

No upload. The tool is 100% client-side JavaScript — your file is read by your browser's built-in File API and all the splitting happens on your device. There's no server-side component, which is why we can make the promise. You can verify it in your browser's developer tools: the Network tab will show zero outgoing requests with your file in them.

If you need extra assurance for compliance (HIPAA, GDPR, financial data), turn off your Wi-Fi after the page loads, process the file, then turn it back on. The tool still works, which proves no upload happens.

Does each split file include the header row?

Yes — always. The original header row is copied into every output file. This is what makes each part importable independently into Salesforce, HubSpot, databases, or any other system expecting a header row. You don't have to do anything special to enable this.

What's the maximum file size I can split?

There's no hard limit from us — the constraint is your browser's available memory. In practice:

  • Files up to 500 MB work comfortably on most modern machines
  • 1–2 GB files work on Chrome or Edge with plenty of RAM
  • Beyond 2 GB, browser string limits start to bite — if you hit an error, split by row count (smaller chunks process faster)

If a file crashes the tab, reload and try "By row count" with 10,000 or 50,000 rows per file. The streaming writer is gentler on memory than the size-based splitter.

How do I split a CSV for Salesforce import?

Pick "By file size" mode and click the "Salesforce / HubSpot — 25 MB" preset. That's it. The tool splits your CSV into files ≤ 25 MB, each with the full header row, ready to upload into the Data Import Wizard one at a time. The 25 MB preset also works for HubSpot's contact import.

If you have more than about 10 GB of data, consider Salesforce Data Loader instead — it's built for larger bulk imports.

Can I split an Excel (.xlsx) file directly?

Yes. Drop your .xlsx or .xls file onto the tool and it's read natively — you don't need to convert it to CSV first. You can also output the splits as XLSX if you prefer to keep the Excel format (booleans and formatted dates survive the round-trip).

One note: if your Excel file has multiple sheets, only the first sheet is processed. To split other sheets, save them as separate files first or use the Merge tool after.

My CSV has special characters (é, ñ, £) that show up garbled. Why?

This is almost always an encoding issue. Most CSVs exported from older Excel on Windows are in Windows-1252 rather than UTF-8. The tool auto-detects encoding on read and handles both — but if your original file was saved without a BOM and uses unusual characters, detection can be wrong.

The fix: re-save the original file as "CSV UTF-8 (Comma delimited)" from Excel, or open it in a text editor, save as UTF-8, then drop into the tool. The output is always UTF-8 with BOM, so the splits will import cleanly into Salesforce, HubSpot, and Google Sheets.

Does splitting preserve leading zeros in ZIP codes, phone numbers, and SKUs?

Yes. This was a common bug in earlier versions and in most competing tools. The splitter preserves your original cell contents as strings — a ZIP code "01234" stays "01234" and won't get mangled to 1234.

For XLSX output specifically, the tool is careful to keep leading-zero strings as text rather than auto-casting to numbers (Excel's default behavior that breaks so many imports).

Can I split by a column value? What does that do?

Use "By column value" mode. Pick a column — say "region" — and you get one output file per unique value. So a dataset with regions "North", "South", "East", "West" produces four files, each containing only rows for that region, headers included.

This is useful for: splitting orders by country, emails by campaign, transactions by month, customers by assigned sales rep, or any other categorical breakdown. Rows where the column is blank go into a file called (blank).csv.

Why is my output ZIP smaller than the sum of the parts?

CSV files compress extremely well — typically 80–90% reduction. When you click "Download all as ZIP", the tool runs standard deflate compression on each part. A 500 MB total of CSV files often becomes a 60–80 MB ZIP. The individual .csv files inside the ZIP are the original full size — the compression is only in transit.

Can I save my settings so I don't have to reconfigure each visit?

Yes. Configure your split method, row count, output format, then click "💾 Save settings". Your preferences are stored in your browser's localStorage and load automatically next time. "🗑 Clear" removes them. Nothing is sent to a server — storage stays on your device.

How do I split a CSV file for Salesforce's 25 MB import limit?

Drop your file in, pick By file size, and click the Salesforce / HubSpot — 25 MB preset. Leave Include header in each output file checked so every part imports independently with correct column names. You'll get a ZIP with files named yourfile_part01.csv, yourfile_part02.csv, etc. Import them one at a time in order — queuing imports simultaneously makes errors hard to trace.

Can I split a CSV by a column value — one file per region, or per customer?

Yes. Choose By column value and pick the column to split on — e.g. country, assigned_rep, or customer_id. The tool creates one output file per unique value, named using the value itself (yourfile_United-States.csv, yourfile_Canada.csv, etc.). Works for any non-empty column. Empty values get grouped into a single _blank.csv file.