Paste or drop a CSV, choose how many rows each piece should hold, and download the pieces. The header row is written into every one of them. That sounds obvious and is the usual bug: without it, whatever program opens the second file treats its first data row as the heading, so one record quietly disappears from every piece after the first. The summary tells you how many rows went in and how many files came out.
This page loads no libraries at all — the work is done by the browser itself. Your file is read on your own machine and never sent anywhere — open your browser's network tab and watch while you use it.
Because otherwise each piece after the first loses a row. Spreadsheet programs and import scripts read the first line as column names, so a headerless chunk sacrifices its first record to that assumption — and since the file still opens and still looks reasonable, the missing rows are found much later, if at all.
Each piece has its own download button, and there is one button that downloads them all in sequence. Browsers sometimes block a burst of downloads, so they are spaced slightly apart.
Whatever the thing you are feeding accepts. Import limits are the usual reason to split — many systems cap uploads at a few thousand rows — so match the cap rather than guessing. The row count excludes the header.
No. The last file simply holds whatever is left over, which may be a single row. Padding would invent data, and inventing rows in a data file is worse than an uneven split.
Everything here is free and works the same way — in your browser.