Skip to content
RowDocs

Timesheet generator from Excel — one pre-filled sheet per employee

Generate pre-filled per-employee timesheets from a staff list, ready to print or send.

Free up to 20 rows per run. No signup.

Need more? Pro is $12/mo for unlimited rows

Runs entirely in your browser · No upload · No signup · Open the network tab and check

“Every two weeks we need 100 plus time sheets each with preprinted information on them specific to each employee and week... I am sure excel can do this but it is over my head.”

— Microsoft Q&A

It should not be over anyone's head. Drop the roster, get the sheets — no VBA, no template copying, no macro to maintain.

How it works

  1. 1

    Drop your staff list

    A .xlsx or .csv with one row per employee — a name column plus whatever else each sheet should carry (department, week, pay period). Parsed in your browser; nothing uploads.

  2. 2

    Check the roster count

    The tool shows how many employee rows it found. Filter the list before dropping it if only some staff need sheets this period.

  3. 3

    Generate the timesheets

    One PDF per employee: their name and context details pre-filled above a blank Monday-to-Sunday grid with Time in, Time out, Break, and Total hours columns — ready to print or send.

A worked example: 87 employees, 87 sheets

The thread quoted above describes a roster of 87 employees flagged with a Y. Filter your master list to those 87 rows and save it as roster.xlsx with columns Employee, Department, and Pay period. One run produces 87 one-page timesheets — each with that employee's name, department, and pay period printed at the top, a blank weekly grid below, and signature lines at the bottom — zipped and ready for the printer.

Next period, change the Pay period column, drop the file again, and run it again. The template never drifts and there is no macro to break.

Constraints & edge cases

We pay biweekly — how do I get two weeks per employee?

Each generated sheet carries one Monday-to-Sunday grid. For a biweekly period, add a Week column to your roster and include two rows per employee — one per week. Each row becomes its own sheet with the week value printed at the top, so an 87-person biweekly run is a 174-row file.

How does week numbering work?

The tool prints your columns; it does not compute dates or week numbers. Whatever your Week or Pay period column says — "Week 33", "Aug 11–17", "PP17" — is what appears on the sheet, exactly as written. That keeps it neutral to whichever week-numbering convention your payroll uses.

Can I add an Overtime column to the grid?

The grid columns are fixed in this version: Day, Date, Time in, Time out, Break, Total hours. An Overtime column in your roster is not lost — it prints as a context line above the grid (up to three extra columns are shown there) — but it does not become a grid column.

What happens to rows with a missing name or employee ID?

Every data row generates a sheet. The name is taken from an Employee or Name column; if that cell is blank the sheet prints a dash where the name would be. Rows you do not want sheets for — terminated staff, header notes — should be filtered out of the list before you drop it.

Is it free for a full staff roster?

Each run covers the first 20 rows free, with unlimited runs and no signup. A 100-plus-employee roster in one run is Pro ($12/mo, unlimited rows) — or split the roster and run it in free-sized batches.

How to make per-employee timesheets from a staff list, by hand

This one is usually recurring rather than one-off, which changes the maths: a method that takes an hour is an hour every fortnight, not an hour once.

A template plus Save As, per employeeA minute or two per person, every pay period

  1. 1Build one timesheet with the employee name, week ending and pay period as cells.
  2. 2Fill them in for the first employee, then Save As with their name in the filename.
  3. 3Clear the fields, fill in the next person, save again.

Where it breaks. Purely linear, and it repeats every period forever. The specific hazard is Save As on a file you have already edited: one missed rename and you have overwritten the previous employee's sheet with this one's data.

A macro that loops the rosterAn hour or two to write, then quick each period

  1. 1Keep the roster on one sheet and the blank timesheet on another.
  2. 2Write a macro that walks the roster rows, writes each employee's details into the template, and saves or PDF-exports it under their name.

Where it breaks. This is the right shape and it works. The recurring cost is that any change to the timesheet layout means editing the macro's cell references too, and the pay-period dates have to be updated somewhere each cycle — usually the thing that gets forgotten.

One tab per employee in a single workbookFifteen seconds per person to set up, then it is reusable

  1. 1Build the blank timesheet once, then right-click its tab and use Move or Copy with Create a copy, one per employee.
  2. 2Rename each tab to the employee's name and fill in the name cell on each.
  3. 3Next period, copy the whole workbook and clear the entered hours rather than rebuilding it.

Where it breaks. This is the route most people settle on, and its weakness is the last step of the job rather than the first: what you have is one workbook with thirty tabs, and what you owe thirty people is thirty separate documents. Exporting to PDF makes it worse — Excel's PDF export writes the ACTIVE sheet by default and the entire workbook if you change that setting, with no option in between, so there is no way to get thirty files without selecting and exporting thirty times.

Windows and Mac

Windows. Save As → PDF exposes an Options dialog where the sheet selection lives; it is easy to miss and it is the setting that decides whether you get one sheet or all of them.

Mac. The same choice appears in the print dialog instead, under the PDF dropdown, which is why Windows instructions for this step do not match what a Mac user sees. Macros that write files also need explicit folder permission on macOS — the usual reason a Windows-written timesheet macro fails on a Mac with no obvious error.

Under about ten employees, the template-and-rename route is fine and the setup cost of anything else is not worth paying. Past that, two things compound: it repeats every single pay period, and every route above ends with a manual export step that scales linearly with headcount.

Generate them here instead — free, no signup, and your file never leaves your machine.

Often done next

Ran out of rows? Pro lifts the 20-row ceiling for $12/mo — see what Pro costs.