Help · Get started · Sheet headers
Set up your sheet headers correctly
Sheet to PDF reads row 1 of your active sheet as the column headers. Each header name becomes a variable you can use in your template as {{HeaderName}}.
The rules
- Row 1 only. If your data starts later, move it up.
- Case-sensitive.
Client≠client. - Exact match. Trailing spaces, special characters — all matter.
- No duplicates. Two columns with the same header → only the first wins.
- Empty headers are skipped. An empty cell in row 1 means that column is ignored.
Good header names
- Simple, descriptive:
Client,Amount,Date,Email - CamelCase for multi-word:
ClientName,InvoiceNumber,DueDate - Or with underscore:
client_name,invoice_number(just pick one style and stick with it)
Avoid these
- Spaces (works, but easy to mistype):
Client Name - Special characters:
{{Amount}}€in the header — keep symbols in the template, not the header - Reserved word:
rowNumberis built-in (always present, no column needed)
The special {{rowNumber}} variable
You don't need a column for the row number. {{rowNumber}} is automatically available in every template — it gives the actual sheet row (2, 3, 4…).
Useful for unique filenames: Invoice_{{Client}}_{{rowNumber}} → Invoice_Acme_2.pdf.
💡 Tip: open the sidebar and look at the "Insert:" chips under "Customize filename." Those are exactly the column headers Sheet to PDF detected. If something's missing, your header isn't quite right.
What if I rename a column later?
Update both the sheet header AND the matching placeholder in your template Doc. They have to stay in sync. The sidebar will show the new headers next time you reopen it.