← Docs from Excel

How to populate a Word template from Excel

You already have the document — the contract, the certificate, the offer letter. Only a handful of words change each time, and those words are sitting in a spreadsheet. This is how to get them from one file into the other, forty times over, without retyping.

Short answer: mark the changing text in your template, then pick a filler: Word's own mail merge (free, but the output is one long document), a macro or Power Automate (works, needs setup), or a web page — Docs from Excel takes the spreadsheet — and the template too, if you have one — and gives back one filled document per row, named from a column. How to build the template comes first.

Step 1: Mark what changes

Open the document you already use and find every piece of text that differs from one copy to the next: the customer, the amount, the date, the reference number. Everything else — layout, logo, letterhead, terms — stays exactly as it is.

There are three ways to mark those spots, and which one you use decides which fillers will work:

MarkingLooks likeWorks with
Merge fields«Customer», inserted from the Mailings tabWord's mail merge only
Content controlsA grey box with a tag, from the Developer tabPower Automate, code
Plain placeholders{{Customer}}, just typed inAlmost everything, including web tools

Plain placeholders are the least clever and the most portable. They are ordinary text, so they survive being emailed, copied into a new document, or opened in Google Docs and LibreOffice. Type them so they match your spreadsheet's column names and nothing has to be mapped by hand.

One thing worth knowing: put placeholders in headers and footers too if the reference number lives there. Several filling methods skip headers, and that is where document numbers usually hide.

Step 2: Get the spreadsheet right

Step 3: Pick a filler

Word's mail merge

Free and built in. Mailings → Select Recipients → Use an Existing List, point at the workbook, insert merge fields, Finish & Merge. It fills the template correctly.

What it does not do is give you separate files — every record lands in one long document, and there is no filename step at all. Getting one file per record is a separate problem.

Autofill it with a macro

From Excel, VBA can open the template, replace each placeholder and save the result under a name taken from a column. Loop it and the whole job is done unattended:

Set doc = wd.Documents.Open(templatePath)
doc.Content.Find.Execute FindText:="{{Customer}}", _
    ReplaceWith:=Cells(r, 2).Value, Replace:=wdReplaceAll
doc.SaveAs2 outFolder & Cells(r, 1).Value & ".docx"

Right answer if you run this every month and macros are permitted. Two catches: a plain find-and-replace does not reach headers, footers or text boxes (each needs its own pass), and on a managed work laptop macros are often disabled by policy.

Power Automate

The Microsoft 365 route, and the only one that runs on a schedule with nobody present. It uses content controls rather than typed placeholders, reads rows from a table, fills the template, converts to PDF and files the result. The conversion connectors are premium on most plans and the first flow takes an afternoon.

Import both files into a web page

Docs from Excel is built for exactly this shape of job. Upload the template with {{placeholders}} and the spreadsheet — or just the spreadsheet and one line saying what the documents are — and every row comes back as its own Word file or PDF, named from a column you pick.

Which to choose

Mail mergeMacroPower AutomateWeb page
One file per rowNoYesYesYes
Names files from a columnNoYou code itYou configure itPick it
Fills headers and footersYesExtra workYesYes
Needs anything installedOfficeOffice + macrosNoNo
Runs unattendedNoNoYesNo

Fill your template now

Upload the document you already use and your spreadsheet. Every filled file can be opened at full size before you pay.

Send your Excel →

Free to run and inspect. Downloading a batch is a one-time US$9.90 — no subscription, no account.