← Docs from Excel

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:

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:

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 mergeVBAPower AutomateThis
One PDF per rowNoYesYesYes
Named from a column—You code itYou configure itPick it
Needs Office installedYesYesNoNo
Needs macros allowedNoYesNoNo
Needs a paid planOfficeOfficeUsually premiumUS$9.90 once
Time to first result~30 minAn eveningAn 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.