← Docs from Excel

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:

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 mergeVBAThis
One file per rowNoYesYes
Named from a columnNoYes, you code itYes, pick it
Needs Office installedYesYesNo
Needs macros allowedNoYesNo
PDF outOne big oneYes, you code itYes
Works on PowerPoint and Excel templatesNoMore codeYes

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.