How to create multiple Word documents from Excel
Forty contracts with forty different customer names. Two hundred statements with two hundred different amounts. The data is already sitting in a spreadsheet — here are the three routes that turn each row into its own Word file.
Short answer: Excel cannot do it alone. Either run Word's mail merge with Excel as the source, drive Word from Excel with VBA, or hand the spreadsheet to a web page — Docs from Excel gives you back one Word file or PDF per row, named from a column you choose, with no template to prepare. Side-by-side comparison below.
Can Excel generate Word documents on its own?
No. Excel holds the data and can format it, but it has no way to lay out and save a Word file by itself. Something has to bridge the two: Word's own mail merge, code that drives Word, or an outside tool that reads both files. Which of the three you want depends almost entirely on one thing — whether you need one document or two hundred separate ones.
Generating Word documents from Excel data: the three routes
People describe this job in several ways — creating multiple Word documents from an Excel list, generating Word documents from Excel data, autofilling a Word document from Excel. Same job, three routes below.
Route 1: Word's mail merge, with Excel as the source
This is the built-in answer and it costs nothing. In Word: Mailings → Start Mail Merge → Select Recipients → Use an Existing List, point it at your workbook, drop merge fields into the text, then Finish & Merge.
Two things catch people out every time:
- Numbers and dates arrive looking wrong.
1250comes through as1250rather than1,250.00, and dates flip format. Excel's cell formatting is not what gets sent — the underlying value is. You fix it with a switch in the field code,{ MERGEFIELD Amount \# "#,##0.00" }, or by pre-formatting the value into a text column in Excel. - The output is one long document. Every record lands in the same file, one after another. Getting one file per record is a separate problem that Word does not solve.
Route 2: Drive Word from Excel with VBA
From the Excel side you can open Word through automation, load a template, replace text, and save:
Set wd = CreateObject("Word.Application")
Set doc = wd.Documents.Open("C:\templates\contract.docx")
doc.Content.Find.Execute FindText:="{{Customer}}", _
ReplaceWith:=Cells(r, 2).Value, _
Replace:=wdReplaceAll
doc.SaveAs2 "C:\out\" & Cells(r, 2).Value & ".docx"
Loop that over your rows and you have exactly what you wanted: one named file per row. This is the right answer if it is a job you will run every month and you are allowed to keep macros in the workbook.
It is the wrong answer if macros are disabled by your IT policy, if you are on a Mac, or if you need it working this afternoon. Also note that a plain find-and-replace does not see text inside text boxes, headers and footers, which is where letterheads and contract numbers usually live.
Route 3: Upload both files to a web page
If what you want is the folder of finished documents, not a skill you keep, Docs from Excel is the short path. Upload the spreadsheet, type what the documents are — “price quotations with a line-item table” — and every row comes back as its own file, named from the column you pick. If you already have a Word template with {{Customer}} in it, upload that instead and it is used as-is.
| Mail merge | VBA | This | |
|---|---|---|---|
| One file per row | No | Yes | Yes |
| Named from a column | No | Yes, you code it | Yes, pick it |
| Needs Office installed | Yes | Yes | No |
| Needs macros allowed | No | Yes | No |
| PDF out | One big one | Yes, you code it | Yes |
| Works on PowerPoint and Excel templates | No | More code | Yes |
Turn a spreadsheet into a folder of documents
Upload the spreadsheet and say what the documents are. Every file is generated and shown 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.