Roster Splitter
One file per manager or department, each built from nothing so there is no hidden copy of everybody else inside it.
Reads .xlsx and .csv inside your browser, and writes the zip there too. Nothing is uploaded.
The master roster
Drop a spreadsheet here
One row per person. Every file this produces is built fresh from these rows.
Filter and Save As sends the whole roster
This is a job every HR team does monthly, and the usual method is to filter the master file and save a copy. The file that arrives looks like eight people. It contains four hundred, in the rows the filter hid, on the sheets nobody removed, and in whatever else the workbook is carrying. The manager sees eight names. Anybody who clears the filter sees everybody’s pay.
Every file here is built from nothing: a fresh header row and only the rows belonging to that group. There is no original to leak from, because no copy of the original is ever made. You can open any of them on this page and read the whole thing before you send it, which is the only way a claim like that is worth anything.
Columns are the second leak
A line manager’s list rarely needs salary, and the master roster always has it. Anything that looks sensitive starts switched off here, so putting pay or a date of birth into thirty outgoing files is a decision somebody made rather than a default nobody noticed.
People with no group do not vanish
A blank department is common and it is exactly the kind of row that quietly disappears from a manual split. Here they go into their own file by name, or you can exclude them deliberately, and the tool says plainly that excluding them means those people appear in no file at all. That is how somebody stops being anybody’s responsibility.
Filenames that actually save
A department called “Sales/Ops” cannot be a filename. A department called “CON” produces a file Windows will not open, because that name has been reserved since before most of us were working. Names are cleaned, collisions are numbered, and the group name inside each file is left exactly as it was.
The zip is written here, not fetched
Thirty separate downloads is not a feature and browsers block them anyway, so the archive is assembled in the page. It uses no compression, which makes it about eighty lines of code instead of a third-party library running inside a page that handles your payroll file. Every operating system opens it natively.