Split Excel files online.

Drop an XLSX file and cut it into smaller import-ready partials. Pick the sheet, choose rows per file, keep headers in every part. Runs in your browser, downloads as a ZIP.

Drop a file here
CSV, TSV, TXT, XLSX, JSON or SQL dump
or click to browse

When you need to split an Excel file

Excel workbooks grow without warning. A marketing team exports their audience as one big XLSX, a finance team merges quarterly reports into a master file, an HR system spits out a roster with a hundred thousand rows. Then the file has to go somewhere: a CRM that caps imports at 10,000 rows, an email platform that refuses files over 25 MB, a partner system that wants one file per region.

Splitting the workbook into smaller parts solves it. The trick is to keep every partial importable on its own — with the header row intact, the same column layout, and a row count that fits the destination system's caps.

  • CRM bulk imports — HubSpot, Salesforce, Pipedrive row or file caps
  • Email platforms — Mailchimp, Klaviyo or Sendgrid audience size limits
  • Vendor portals that accept attachments under a fixed MB threshold
  • Manual review — split one big workbook so each reviewer gets a chunk
  • Per-region exports — break a master file into one per country or team

How the Excel splitter works

MessyMatch reads the XLSX file in your browser using a Web Worker. It picks out the sheet you choose and treats its first row as the header row. The splitter then streams rows from the sheet and writes one partial workbook for every N rows you asked for, repeating the header row in each partial so every output file is independently importable.

You can choose how to cut: by row count (every partial gets N rows), by file count (N equal partials), by byte size (each partial below a target MB cap, useful for upload limits), or by column value (one partial per unique value of a column).

Output format: XLSX or CSV

By default the splitter writes XLSX partials so the output matches the input. If you do not need Excel-specific features (formulas, formatting, multiple sheets per partial) you can switch the output format to CSV. CSV partials are smaller, faster to generate and easier to import almost anywhere.

A note on XLSX performance. Excel files are zipped XML and the parser must hold the sheet grid in memory. Workbooks up to ~100,000 rows usually run fine in the browser. For very large spreadsheets, exporting to CSV first and using the CSV splitter is faster and more reliable. MessyMatch will warn you before it tries to process a file that exceeds the safe in-browser limits.

Browser-first by design

The XLSX contents are processed inside your browser via a Web Worker and are not transmitted to our servers. Our servers do not have an endpoint that ingests file contents — the Web Worker reads the file from disk, splits it locally and hands the partials back to the browser for download. We only record metadata about the operation (row count, file size, format, elapsed time) for abuse limits. See the privacy policy for the full list.

Related tools

Frequently asked questions

Can I split an XLSX file by number of rows?+

Yes. Drop the workbook, choose the sheet you want to split, type how many rows per partial, and MessyMatch produces partial XLSX files of that size.

Will headers be repeated in every partial?+

Yes by default. Each partial includes the header row from the source sheet so every file is importable on its own. You can turn it off if your downstream tool expects the header only on the first file.

Are my Excel files uploaded?+

No. The XLSX is parsed and split in your browser via a Web Worker. The file contents are processed inside your browser via a Web Worker and are not transmitted to our servers.

What if my workbook has multiple sheets?+

Pick the sheet to split when you upload the file. Other sheets are ignored. Each partial contains the selected sheet only.

How large can the Excel file be?+

XLSX is heavier than CSV because it is a zipped XML format and Excel readers hold the parsed grid in memory. Workbooks up to about 100,000 rows usually split fine. For larger files we recommend exporting to CSV first and using the CSV splitter — it is faster and uses less RAM.

Can I split the file into CSV partials instead of XLSX?+

Yes. In the output format selector you can choose CSV. The result is a set of CSV files that any system can import without needing Excel.

Why is splitting Excel slower than splitting CSV?+

Excel files are compressed XML. The library has to unzip the workbook, parse the XML and rebuild every partial as a new XLSX archive. CSV is plain text so it streams row by row. Same engine, very different cost.