CSV Splitter

Split one CSV into several files by row count or by a column value, and download the parts.

Files stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Split CSV controls

Drop your CSV file here

or choose one from your device

One UTF-8 file up to 20 MB, 500 columns and 200,000 rows. The file is read in your browser.

    Row count cuts the table into fixed chunks. Distinct column value gives every value in one column its own file.

    Used by the row count split. A value of 1000 turns 4,200 rows into five files holding 1000, 1000, 1000, 1000 and 200 rows.

    The heading of the column, or its 1-based position such as 2. Used by the distinct column value split only.

    When this is on, every part repeats the header row. Turn it off when the first line is already data, and address the column by its number.

    Detection suits a well-formed file. Set the delimiter yourself when a quoted cell confuses it.

    A cell whose first visible character is = + - or @ receives an apostrophe in every part, so a spreadsheet reads it as text. A leading space, tab or control character does not hide it. The prefix changes the stored value.

    How to use CSV Splitter

    1. Choose the CSV or TSV file to split. It is read in your browser.
    2. Pick Row count and set how many rows each file holds, or pick Distinct column value and name the column to divide on.
    3. Leave the header row option on when the first line names the columns, and set the delimiter if automatic detection chooses the wrong one.
    4. Press Split CSV, check the row count listed for each part, then download the ZIP or the single part.

    Example: CSV Splitter

    Cut a four-row order file into two files of two rows each.

    You add
    File: orders.csv holding the lines region,name / EU,Ana / US,Lee / EU,Bo / US,Kim. Split by: Row count. Rows in each file: 2. Header row: on. Delimiter: automatic.
    You get
    The page reports four rows in two files and lists orders-part-1.csv and orders-part-2.csv with two rows each, then downloads split-parts.zip. Both parts begin with the line region,name.

    Options

    Row count
    The table is cut into chunks of the size you set, with the last chunk holding whatever is left. Four thousand two hundred rows at one thousand rows each produce five files.
    Distinct column value
    One file is written for each different value in the chosen column, and a value keeps the order it first appeared in. The column is named by its heading or by its 1-based position.
    Delimiter
    Automatic detection suits a well-formed file. Set the delimiter yourself when a quoted cell confuses detection, which usually shows up as one very wide column.
    Protect spreadsheet formulas
    A cell that begins with =, +, - or @ receives an apostrophe in every part, so a spreadsheet reads it as text rather than running it.

    Supported inputs and limits

    One UTF-8 CSV or TSV file up to 20 MiB, 500 columns and 200,000 rows of data, with no more than 200 parts in one run. Blank and whitespace-only lines are skipped. A data row holding more cells than the first row widens the table with a column named column_N instead of dropping the extra values. Every part is written as comma-separated CSV, and the header row is repeated in each part when that option is on. Formula protection is on by default and prefixes a cell whose first visible character is = + - or @ with an apostrophe; a leading space, tab, control character or byte-order mark does not hide a cell from that guard, and the prefix changes the stored value. Two values that reduce to the same safe file name are numbered instead of replacing each other, and every name that changed is reported under the row counts. Tables must stay within 2,000,000 cells; the preview shows a limited selection of rows.

    Where your input is processed

    This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

    What every part keeps

    Each file is written with the same separator and, when the option is on, the same header row, so a part opens like the file it came from. Cell text is never converted into a number, so an identifier such as 0012 keeps its leading zeroes. The formula prefix is the only deliberate change to a value, and the report counts the cells it touched.

    Questions about CSV Splitter

    How many files will I get?

    A row count split gives one file per chunk and one more file for the remainder, so 4,200 rows at 1,000 rows each produce five files. A distinct column value split gives one file for each different value in that column.

    Why did a value end up in a file named orders-eu-x.csv?

    A slash, a backslash, a control character, two dots in a row or a device name cannot go into a file name, so the value is reduced to a plain slug. Every name that changed is listed with the row counts.

    Is my CSV uploaded anywhere?

    No. The file is read in your browser, each part is written there, and the download is created from that data on your device.

    Why did a value such as -5 gain an apostrophe?

    Formula protection is on by default and a cell whose first visible character is one of those looks like a formula to a spreadsheet, even when a space or a tab comes first. Turn the option off when a leading minus sign is ordinary data.

    Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem