🔒 Everything runs in your browser — no files, data, or documents are uploaded, stored, or sent to any server.
No data loaded yet
Upload your Word template and Excel database on the left to see a preview of the rows that will be generated.
▶️
How to use this generator
Click to collapse
1

Prepare your Word template

Create or open a .docx file in Microsoft Word (or any editor that saves .docx) and type your placeholders anywhere in the body, headers, or footers using double curly braces, like {{name}}, {{degprog}}, or {{honor}}.

  • Placeholder names can only contain letters, numbers, and underscores — no spaces or punctuation inside the braces.
  • Placeholders are case-insensitive; {{Name}} and {{name}} are treated the same.
  • You can format the placeholder text (bold, color, font, size) exactly as you'd like it to appear in the final document — the formatting is preserved.
  • If Word happens to split a placeholder across formatting runs (which can make it unreadable to the generator), this tool will automatically detect and repair it when you upload the file, and will tell you how many tags it fixed.
2

Upload the template (Step 1 in the sidebar)

Click or drag your .docx file into the "Upload Word Template" box. Once uploaded, the tool scans the document and lists every placeholder it found under "Placeholders found."

  • If your template is the CAS Certificate of Completion for Graduates template, check the "CAS Certificate of Completion for Graduates template" box. When enabled, any row that has a value in the honor column will automatically get a comma and space added after the degprog value before merging (e.g. "…Communication Arts" becomes "…Communication Arts, ").
  • Click "📌 Pin this template" to save it in your browser for future use, so you don't have to re-upload it every time. Pinned templates appear under "Saved Templates" with their required columns listed, and you can use them or download a matching blank spreadsheet straight from there.
3

Prepare your Excel (or CSV) database

Create a spreadsheet where the first row contains column headers that match your placeholder names exactly (case doesn't matter). Each row after that represents one document to generate.

  • Example: if your template has {{name}}, {{degprog}}, and {{honor}}, your spreadsheet needs columns named name, degprog, and honor.
  • Accepted file types are .xlsx, .xls, and .csv.
  • If your workbook has multiple sheets, the tool will use a sheet named "main" if one exists; otherwise it uses the first sheet.
  • Don't worry if you have extra columns that aren't used as placeholders — they're simply ignored unless you choose to use them for file naming or folder grouping in the next step.
4

Upload your data (Step 2 in the sidebar)

Click or drag your spreadsheet into the "Upload Excel Database" box. The tool reads every row and shows a preview on the right, along with the row and column counts.

  • Back in the "Placeholders found" list from Step 1, any placeholder that doesn't have a matching column in your spreadsheet will be highlighted as unmatched — double check your column headers if you see this.
5

Choose file naming & folder options (Step 3 in the sidebar)

  • File name column — pick the spreadsheet column whose value should become each generated file's name (commonly the recipient's name). This is required before you can generate anything. If a row has no value in this column, that row is skipped.
  • Group output into subfolders by (optional) — pick a column to automatically sort generated files into subfolders based on its value (e.g. group by "term" or "degree program").
  • Second-level subfolder (optional) — pick a second column to create a nested subfolder inside the first one (e.g. term → degree program).
  • Documents per ZIP — for large datasets, the tool automatically splits the output into multiple ZIP files of about this size, downloaded one after another, so your browser never has to hold everything in memory at once. If you've chosen a subfolder column, rows sharing the same folder value are always kept together in the same ZIP — a folder's contents are never split across two batches, even if that means a batch runs a little over your target size.
  • As you choose these options, the "Output structure" note above the preview table updates live to show you exactly what the resulting file paths will look like.
6

Generate & download

Once a template and spreadsheet are uploaded and a file name column is selected, the "⬇ Generate & Download ZIP" button becomes active. Click it to merge every row into its own copy of the template.

  • A progress bar shows how many documents have been generated, followed by ZIP packaging progress, batch by batch if your dataset is large.
  • When finished, your browser downloads one or more files named Generated_Documents.zip (or Generated_Documents_part1of3.zip, etc. for multiple batches), each containing .docx files organized into any subfolders you chose. For a single ZIP, files sit inside an "Output" folder; for multiple ZIPs, each one gets its own root folder — Output_part1of3, Output_part2of3, and so on — so extracting all of them never overwrites or collides, and you don't need to manually merge folders with the same name.
  • The first time multiple ZIPs download in a row, Chrome may ask permission to allow multiple downloads — click Allow so the rest can come through automatically.
  • A summary at the bottom tells you how many documents were generated successfully, across how many ZIP files, and how many rows were skipped (for example, due to a missing file name value).
  • If something goes wrong with a row — like a misspelled placeholder — the tool reports the first error it ran into so you can fix your template or data and try again.
Tip: Use the "Pinned for Reuse" panel to save templates you use often. For any pinned template, you can click "Blank XLSX" to instantly download a spreadsheet with the correct column headers already in place — optionally adding your own extra columns (like "remarks" or "section") before downloading.
🛠️
Troubleshooting & FAQ
Click to collapse
?

"Packaging ZIP…" gets stuck at 100%, or the tab freezes/crashes

This almost always means the browser ran out of memory holding every generated document at once before zipping — common with large datasets (hundreds of rows) or templates with big images. As of this version, output is automatically split into multiple smaller ZIPs (see "Documents per ZIP" in Step 3), which fixes this for most cases. If it still happens, lower that number — try 75 or 50 — and close other tabs to free up memory.

?

My browser blocked a second (or third…) download

When a large dataset produces several ZIP files, Chrome sometimes pops up a permission prompt the first time it tries to download more than one file in a row. Click Allow (or "Allow multiple downloads") and the rest will continue automatically — you only need to do this once per site.

?

"Failed to load: JSZip / PizZip / docxtemplater / XLSX / FileSaver"

This tool loads a few small code libraries from a CDN when the page opens. If this message appears, your internet connection dropped, or something on your network (an ad blocker, browser extension, firewall, or corporate filtering policy) blocked one of those library files. Try reloading the page, temporarily disabling ad blockers for this site, or checking your network's filtering rules for the relevant CDN domains. A separate, harmless ERR_BLOCKED_BY_CLIENT message about a ".js.map" file can be ignored — that's just a debug file, not something the tool needs to run.

?

A placeholder shows as "unmatched"

This means a {{placeholder}} in your template has no matching column header in your spreadsheet. Double-check spelling and underscores on both sides — placeholder names are case-insensitive but otherwise need to match exactly (e.g. {{degprog}} needs a column literally named degprog, not degree_program).

?

"Template issue: Unmatched braces" or "Duplicate tag"

This means the tool found a stray {{ or }} without its pair, or the same placeholder appearing twice inside one paragraph (which can break merging). Open the template in Word, find the spot, and fix or remove the extra braces — Word's "Find" tool (Ctrl/Cmd+F) searching for {{ can help locate them quickly.

?

A pinned template disappeared, or doesn't show up on another computer

Pinned templates are saved in your browser's local storage on this device only — nothing is uploaded anywhere. Clearing your browser's site data/cache, using a different browser, or switching computers will not carry pinned templates over. Re-upload and re-pin the template on the new browser or device.

?

Still stuck?

Use the contact form below — describe what you were doing, what you expected, and what happened instead (the exact error message helps a lot). It opens a draft in your email app, ready to send.

✉️
Report an issue or request something
Click to collapse

Found a bug, hit a confusing error, or want a feature added (new options, a different default, support for another template)? Fill this in and hit send — it opens a pre-filled draft in your email app so you can review and send it yourself.