Word Documents User Guide
The ExForms Excel Add-in fills Word document placeholders with data from your spreadsheet — text, tables, charts, and images — and generates one Word document per record (one filled .docx for each row of your parent table), the same per-record model used for PDF. This guide covers creating templates, classifying and mapping content controls, naming the output files, and generating the filled documents.
📖 This is a User Guide
This documentation explains how to use the Excel Add-in interface. A public Word API reference is not published yet.
Document-generation capacity and add-on packs
Filled Word output uses your account's document-generation allowance, the same shared capacity used across ExForms document workflows. Form add-on packs can extend that allowance without changing your main subscription, which is useful for large mail merges, reporting bursts, or Free-plan accounts that need more output capacity.
What You Can Do
- Upload Word templates - Upload .docx files with Content Controls
- One Word document per record - ExForms generates a separate filled
.docxfor each parent-table row - Map Excel data - Connect named ranges, tables, charts, pivot tables, and images to Content Controls
- Static vs per-record content - Mark an object as the same in every document (logo, summary chart) or filled differently per record (each row's fields, its child rows, its image)
- Custom output file naming - Name each generated file from parent-table field values and custom text
- Download as ZIP - Get all filled documents in a single ZIP file
How It Works
Word documents use Content Controls as placeholders for Excel data. You create a Word template with Content Controls where you want data inserted, then classify each Excel object and map it to a Content Control. ExForms then produces one filled document per parent record.
Excel Workbook Word Template Filled Documents (one per record)
───────────────────── ───────────────────── ─────────────────────────────────
Parent table row ─────→ [CC: CustomerName] ───→ Contract_Acme.docx
+ its child rows [CC: LineItems] Contract_Globex.docx
+ its image [CC: SignaturePhoto] Contract_Initech.docx
Named range/chart ─────→ [CC: CompanyLogo] ───→ (same logo in every document)
(static, shared)
Two kinds of content:
| Kind | Filled how | Examples |
|---|---|---|
| Static (shared) | The same value in every generated document | Company logo, a summary chart, a named range, a static image |
| Per-record | Resolved per parent row so each document gets its own | A parent column value, a child table filtered to that row, a per-row image |
Creating a Word Template
Step 1: Insert Content Controls
Content Controls are placeholders in Word that can receive data. Use Rich Text Content Controls for maximum flexibility.
In Microsoft Word:
- Go to Developer tab (enable it in File → Options → Customize Ribbon)
- Position your cursor where you want data inserted
- Click Rich Text Content Control in the Controls group
- A placeholder box appears in your document
💡 Tip: Rich Text Content Controls can accept any content type: text, tables, images, or charts.
Step 2: Name Your Content Controls
Every Content Control MUST have a Title or Tag. This is how the add-in identifies which Excel data goes where.
- Click on the Content Control to select it
- Click Properties in the Developer tab
- Enter a Title (recommended) - primary identifier for mapping
- Enter a Tag (alternative) - used if Title is empty
- Click OK
💡 Best Practice: Set both Title and Tag to the same value (e.g., "EmployeeName" in both fields). This ensures consistency and makes templates easier to maintain.
How Identification Works:
| Scenario | What's Used for Mapping |
|---|---|
| Title filled | Title (primary) |
| Title empty, Tag filled | Tag (fallback) |
| Both empty | ⚠️ Cannot be mapped |
Good naming examples:
CompanyNameEmployeeNameSalesTableRevenueChartCompanyLogo

Step 3: Save as .docx
Save your template as a standard Word document (.docx format).
Template Requirements
When you upload a Word document, the add-in validates it:
| Requirement | Description |
|---|---|
| ✅ File format | Must be .docx (not .doc) |
| ✅ Content Controls present | At least one Content Control required |
| ✅ All Content Controls identifiable | Every CC must have a Title OR Tag |
Validation Process
The add-in scans your document and builds a list of mappable Content Controls:
- First pass: Find all CCs with a Title property
- Second pass: For CCs without Title, check if they have a Tag
- Report: CCs with neither Title nor Tag are flagged as unmappable
If Validation Fails
If your document doesn't meet requirements, you'll see an alert:
⚠️ Document cannot be used
The Word document must contain Content Controls with Title or Tag properties.
Learn how to add Content Controls →
To fix:
- Open the document in Microsoft Word
- Go to Developer → Design Mode to see CC boundaries
- Click each Content Control and open Properties
- Enter a Title (or at minimum a Tag)
- Save and re-upload
Adding a Word Template to a Set
Template Sets can contain PDFs, Word documents, or both.
- Right-click on a folder in the tree view
- Select "Add New Set"
- Enter a Set Name and Description
- Click "Choose Files" and select your .docx file(s)
- Click Save
The add-in will:
- Validate the document has Content Controls
- Extract Content Control properties (Title and Tag)
- Build a list of mappable CCs (Title-based first, Tag-based as fallback)
Mapping Content Controls to Excel
Excel Objects You Can Map
| Excel Object | Word Usage | Example |
|---|---|---|
| Named Range | Text values, single cells | Company name, date, totals |
| Table | Tabular data inserted into Word | Invoice lines, employee lists |
| Chart | Chart image (inserted as PNG) | Sales chart, pie chart |
| Pivot Table | Pivot output inserted into Word | Summary pivots, grouped totals |
| Image | Workbook image inserted into Word | Logo, signature, product image |
Two-stage mapping (classify, then map)
Because Word produces one document per record, mapping happens in two explicit stages. Nothing is guessed from names — you decide what each object is.
Stage 1 — Classify your Excel objects
The add-in scans the workbook and lists every named range, table, chart, pivot table, and image. For each one you choose its role:
| Role | Meaning | Goes into every document as… |
|---|---|---|
| Parent table | The driving table — one document is generated per row | (drives the batch) |
| Per-record field | A parent column whose value changes per row | that row's value |
| Child table | Rows that belong to a parent row, filtered by a key column | only the rows for that record |
| Static | The same content in every document | identical in all outputs |
| Skip | Not used | — |
Charts, pivot tables, named ranges, and images you mark as Static are filled identically into every generated document (e.g. a company logo or an overall summary chart). Per-record images come from a parent image column or a per-record image table.
Stage 2 — Map objects to Content Controls
Once classified, map each object (or per-record field) to the Content Control that should receive it:
- Find the Content Control in the mapping grid (identified by its Title, or Tag if the Title is empty)
- Choose the Excel object/field to bind to it
- Save the multi-file mapping
Auto-map: the add-in pre-fills mappings where an Excel object name exactly matches a Content Control name (case-insensitive, with
tbl_/_tablevariants). These are starting suggestions — review and adjust them; nothing is mapped on a partial/fuzzy match.
Image placeholders: distinct image placeholders in the template are listed so you can map each one to the workbook image (or per-record image column) it should show. Use the Select Images option to pick local image files when an image lives outside the workbook.
Word is multi-file only. Every Word template generates one document per record. (An older single-file mode is no longer offered in the interface.)
Multiple Content Controls with Same Name
Word allows multiple Content Controls with the same Title (or Tag). This is useful when you need the same data in multiple places (e.g., company name in header and footer).
ExForms handles this automatically: When you map a Content Control identifier to an Excel object, ALL Content Controls with that same Title (or Tag) receive the same data.
Data Type Handling
Text (Named Ranges)
Single-cell named ranges insert their value as text.
Excel Named Range: CompanyName = "Acme Corp"
Word CC: [CompanyName] → Acme Corp
Charts (as Images)
Excel charts are captured as PNG images (400×300 pixels) and inserted into the Content Control.
Excel Chart: "SalesChart" (Bar chart)
Word CC: [SalesChart] → (PNG image of the chart at 400×300)
💡 Tip: Use Rich Text Content Controls for charts. The chart is inserted as an inline image that preserves the chart's appearance.
Other Supported Object Types
In addition to named ranges and charts, the current mapping surface also supports these workbook object types:
| Data Type | Current use |
|---|---|
| Tables | Insert Excel table data into Word tables |
| Pivot Tables | Insert pivot output into Word |
| Images/Shapes | Insert workbook images into Word |
Table Styles
When ExForms generates tables in your Word documents, you can control their appearance using table styles. Table styles define formatting such as colors, borders, shading, and font settings for your tables.
How Table Styles Work
- Styles are stored per company - Table styles are configured at the company level and can be used across all Word templates
- You select a default style - During upload, you're prompted to choose which style to apply
- Generated tables use your style - Tables inserted from Excel data will have this consistent formatting
Creating Custom Table Styles in Word
You can create custom table styles directly in Word that match your branding:
Step 1: Open the Table Styles Gallery
- Insert a table in your Word document (Insert → Table)
- Click inside the table to show the Table Design tab
- Click the More arrow in the Table Styles gallery
Step 2: Create a New Table Style
- Select New Table Style at the bottom of the gallery
- In the Create New Style from Formatting dialog:
- Name: Give it a descriptive name (e.g., "Corporate Blue")
- Style type: Table
- Style based on: Choose a base style or "Table Normal"
Step 3: Customize Formatting
Configure formatting for each table element:
| Element | What It Controls |
|---|---|
| Whole table | Default font, borders, cell padding |
| Header row | First row formatting (bold, background color) |
| First column | Left column emphasis |
| Last column | Right column emphasis |
| Banded rows | Alternating row colors (odd/even) |
| Banded columns | Alternating column colors |
To customize an element:
- Select it from the Apply formatting to dropdown
- Set font, font size, bold, italic
- Set fill color (background)
- Click Format → Borders and Shading for borders
- Repeat for other elements
Step 4: Apply and Save
- Check New documents based on this template to save globally
- Click OK to create the style
- Apply the style to your placeholder table
Example: Corporate Style with Blue Headers
Style Name: Corporate Blue
├── Header Row
│ ├── Background: Dark Blue (#2B579A)
│ ├── Font: White, Bold, 11pt
│ └── Borders: None
├── Banded Rows
│ ├── Odd Rows: White
│ └── Even Rows: Light Gray (#F5F5F5)
└── Whole Table
├── Font: Calibri, 10pt
└── Borders: Light gray horizontal lines
Selecting a Style During Upload
When uploading a Word template:
- After the file upload completes, a Style Selection dialog appears
- Select from available styles:
- Built-in Word styles (e.g., "Table Grid", "Light List")
- Custom styles you've created
- Click Save to set the default style for this template
Managing Word Styles
Word styles are managed at the company level:
- View available styles - Seen during template upload
- Change default style - Select a different style in the file details panel
- Custom styles carry over - Styles you create in Word are detected during upload
Best Practices for Word Table Styles
| Practice | Benefit |
|---|---|
| Match corporate branding | Consistent look across all documents |
| Use clear header formatting | Readers can quickly identify columns |
| Apply banded rows | Improves readability for large tables |
| Keep fonts consistent | Professional appearance |
| Test with long text | Ensure style handles various content |
💡 Tip: Create a "style template" Word document with your custom styles defined, then copy these styles to new documents using the Styles organizer.
Template Set Editor
When you select a template set, the editor shows:
File List
All files in the template set with:
- File name and type (PDF/Word)
- Mapping status (% mapped)
- Last modified date
Actions Per File
| Action | Description |
|---|---|
| Edit Mapping | Open the field mapping interface |
| Delete File | Remove file from the template set |
| Remove Mapping | Clear all mappings for this file |
Bulk Actions
| Action | Description |
|---|---|
| Remove All Mappings | Clear mappings from ALL files in the set |
| Add Files | Add more PDFs or Word documents to the set |
Output File Naming
Because each parent record produces its own document, you control how those files are named — the same naming model used for PDF.
Default naming
- File name:
{OriginalFileName}{ID}— the template name plus the record number - Subfolder name:
{ID}— each record gets its own subfolder
Custom naming (naming editor)
Open the naming editor from Naming Options / the Edit link next to the file names. Naming is composed in two short steps:
- Choose what to include — tick the parts you want from the available parent-table fields (e.g.
{CustomerName},{Date}), plus the built-in{OriginalFileName}and{ID}. To add literal text (a prefix or label), tick Custom text and type it in the box. - Set the order and separator — arrange the chosen parts in the order they should appear and pick a separator (dash, underscore, space, or none). Save.
Tip: If you don't include
{ID}(or another value that's unique per row), ExForms appends a counter so files never overwrite each other.
Example: {CustomerName}-{Date}-{OriginalFileName} produces Acme-2026-01-15-Contract.docx.
Generating Filled Documents
- Select the template set from the tree view
- Ensure your Excel data is ready (the workbook associated with this set; the tree highlights the set linked to the open file)
- Verify all Content Controls are mapped (100% mapped)
- Click "Send Data"
- Download the ZIP — it contains one Word document per parent record
Output Structure
One filled .docx per record, named by your naming pattern:
filled_documents.zip
├── Acme-2026-01-15-Contract.docx
├── Globex-2026-01-15-Contract.docx
└── Initech-2026-01-15-Contract.docx
(With the default {ID} subfolder pattern, each document is placed in its own numbered subfolder instead.)
Best Practices
Template Design
- Use Rich Text Content Controls - They accept both text and chart images
- Name controls descriptively -
CustomerNamenotCC1 - Test with sample data - Fill manually first to check layout
- Keep charts simple - Charts are captured at 400×300 pixels
Excel Setup
- Use Named Ranges for text - Single-cell ranges for text values
- Name your Charts - Select chart → Format → Name Box (e.g., "SalesChart")
- Keep data organized - Clear naming conventions help with mapping
Mapping
- Map all Content Controls - Unmapped CCs remain as placeholders
- Classify before mapping - Decide what is static vs per-record so each document gets the right content
- Mark shared visuals as static - Logos and summary charts that should appear identically in every document
- Test your template first - Verify output before creating many documents
Troubleshooting
"Document cannot be used" Error
Cause: Word document doesn't have Content Controls or they're not named.
Fix:
- Open in Word
- Enable Developer tab
- Add Rich Text Content Controls
- Set Title property for each CC
- Save and re-upload
Content Control Not Appearing in List
Cause: Content Control doesn't have a Title/Name property.
Fix:
- Select the CC in Word
- Click Developer → Properties
- Enter a Title
- Save and re-upload
Chart Not Inserting Correctly
Cause: Chart may be too large or complex.
Fix:
- Resize the chart in Excel
- Simplify the chart (fewer data points)
- Ensure the Content Control is large enough
Same Data Appearing Multiple Times
Expected behavior: If multiple Content Controls have the same name, they all receive the same data. This is by design.
If unintended: Rename Content Controls to have unique names.
Need Help?
- Word API reference: not published yet
- For PDF forms: PDF Forms User Guide
- For support: [email protected]