How to create separate PDF files from Excel rows
One row, one PDF. Two hundred rows, two hundred PDFs — each named after the customer, invoice or student it belongs to. Excel has no button for this, and neither does Word, so here are the four routes that get you there.
Short answer: Excel cannot produce PDFs per row on its own. You either drive Word with a macro, build a Power Automate flow, or hand the spreadsheet to something that does it in one step — Docs from Excel gives you back one named PDF per row from a browser tab. All four routes are compared below.
What you need before anything else
Every method needs the same two ingredients, and getting them right saves the most time:
- A clean sheet. One row per PDF, first row is column names, no merged cells, no blank rows in the middle. Merged cells are the single most common cause of "it skipped half my records".
- A template. The design of the document, with the changing bits marked. Excel can be the template too if the output is a form or a delivery note, but for letters, invoices and certificates a Word file is easier to lay out.
- A naming column. Something unique per row: invoice number, customer ID, student number. Names alone are not unique enough — two rows with the same value means the second PDF silently overwrites the first.
Generating multiple PDFs from Excel data
One PDF per row, each named from a column. Below are the four routes, from the free built-in one to the one that needs nothing installed.
Route 1: Excel → Word mail merge → PDF
The no-extra-software route. Build the layout in Word, use Mailings → Select Recipients → Use an Existing List to point at your workbook, insert merge fields, finish the merge, then save as PDF.
The wall you hit is at the last step: Word gives you one PDF containing every record, not one per row. Splitting it afterwards is a separate problem with its own answers, and there is no built-in answer.
Watch the number formatting too. 1250 in Excel arrives in Word as 1250, not 1,250.00 — the cell's display format is not what travels. Either fix it with a field switch, { MERGEFIELD Amount \# "#,##0.00" }, or add a column in Excel that already holds the finished text.
Route 2: A VBA macro
Written from the Excel side, a macro can open Word, fill a template, export a PDF and loop:
For r = 2 To lastRow
Set doc = wd.Documents.Open(template)
doc.Content.Find.Execute FindText:="{{Customer}}", _
ReplaceWith:=Cells(r, 2).Value, Replace:=wdReplaceAll
doc.ExportAsFixedFormat _
OutputFileName:=outFolder & Cells(r, 1).Value & ".pdf", _
ExportFormat:=wdExportFormatPDF
doc.Close SaveChanges:=False
Next r
This does exactly what you asked for, and it is free. Four things to know before you start:
- Plain find-and-replace does not reach text inside headers, footers and text boxes — which is where letterheads and document numbers usually sit. Each of those needs its own pass.
- Word must be installed, and the macro is Windows-specific in practice.
- Macros are switched off by policy on many work machines. This is not a setting you can flip yourself.
- You now own a piece of software. When the template changes, the macro often needs changing too.
Route 3: Power Automate
If your organisation is on Microsoft 365, a flow can read rows from a table in Excel, populate a Word template using content controls, convert to PDF and save each one to SharePoint or OneDrive.
It is the most "official" answer and it is genuinely good for a recurring, shared process. It is also the heaviest to set up: the Word Online and OneDrive connectors that do the conversion are premium in most plans, the file has to live in OneDrive or SharePoint rather than on your desktop, and building the flow the first time is an afternoon, not ten minutes.
Route 4: Upload the two files, download the PDFs
Docs from Excel exists for the case where you want the PDFs, not a system. Upload the spreadsheet, say what the documents are, choose PDF as the output and pick the column that names the files. Already have a Word, PowerPoint or Excel template with {{Customer}} in it? Upload that instead and it is used as-is.
Conversion runs through LibreOffice on the server, so the PDF keeps the layout of your template instead of being redrawn by something guessing at your fonts. Headers and footers survive because the template is filled in place, never taken apart.
| Mail merge | VBA | Power Automate | This | |
|---|---|---|---|---|
| One PDF per row | No | Yes | Yes | Yes |
| Named from a column | — | You code it | You configure it | Pick it |
| Needs Office installed | Yes | Yes | No | No |
| Needs macros allowed | No | Yes | No | No |
| Needs a paid plan | Office | Office | Usually premium | US$9.90 once |
| Time to first result | ~30 min | An evening | An afternoon | ~1 min |
Turn your rows into named PDFs
Every PDF is generated and can be opened at full size before you pay for anything.
Send your Excel →Free to run and inspect. Downloading a batch is a one-time US$9.90 — no subscription, no account.