Populate a PowerPoint template
Create one formatted PowerPoint slide for every nonempty Excel record.
Use a designed .pptx slide as a repeatable template and populate its text from
an .xlsx worksheet. Processing is deterministic and local: ConsultChimps does
not upload, retain, or modify either source file.
No installation needed
Both operations also run in your browser: populate a template and inspect a template. Each one runs the same operation code as the commands below, entirely in the page, so your template and your workbook never leave the browser tab.
Prepare the template slide
Add placeholders to ordinary PowerPoint text shapes with double braces:
{{client_name}}
Client: {{client_name}}
{{client_name}} generated {{revenue}} in {{year}}.A shape may contain static text, multiple placeholders, or repeated
placeholders. Spaces immediately inside the braces are trimmed, so
{{ revenue }} matches the revenue header. Matching is otherwise exact and
case-sensitive. PowerPoint object names do not matter.
Prepare the worksheet
The selected header row defines the placeholder fields:
| client_name | revenue | growth_rate |
|---|---|---|
| Company A | $12.4M | 8.2% |
| Company B | $8.7M | -2.1% |
Every subsequent row with at least one cell that is neither empty nor an empty string is an Excel record. Completely empty rows are skipped and reported. Each record creates one output slide in worksheet order.
ConsultChimps shows each value as Excel displays it, by applying the cell's
number format with English (United States) conventions. Percentages, currency
and dates keep their workbook format, and the computer's locale is never
applied. Strings, numbers, dates, booleans, and the cached values of formulas
are supported. An empty cell for a valid placeholder becomes empty text. A
formula Excel never calculated has no cached value, so it reads as empty text;
the result counts such cells in formulaCellsWithoutCachedValues and names them
in a warning. Open and save the workbook in Excel, then run again.
Headers are trimmed. Empty and exactly duplicated headers are rejected. Extra worksheet columns are allowed, but every template placeholder must exactly match a header.
The first worksheet is selected by default. Set --sheet when the records are
on another worksheet.
Inspect the template
consultchimps pptx inspect-template profile-template.pptxInspection reports placeholder names, occurrence counts, malformed braces, and unsupported placements. Placeholders split across adjacent text runs are supported.
The in-browser inspector reports the same findings for an
uploaded .pptx template and offers the same template slide number. It reports
only; it produces no file.
Generate the presentation
consultchimps pptx populate \
--template profile-template.pptx \
--data companies.xlsx \
--header-row 1 \
--output company-profiles.pptxSlide numbers and header rows are counted from 1. The first slide and first
worksheet are used unless --template-slide or --sheet is supplied. When
--header-row is omitted, the first nonempty row in the worksheet is used.
The output contains only populated copies of the selected template slide. The
original template slide and unrelated template slides are not included in the
visible slide list. Existing output files are protected; add --force only when
replacing the named output is intentional.
The in-browser populator takes the same two inputs, a
.pptx template and an .xlsx or .xlsm records workbook that is only read
and never rewritten, and offers the same four choices: worksheet name, header
row, template slide number, and output filename, mirroring --sheet,
--header-row, --template-slide, and --output. It shows how many slides the
workbook would generate before you run the populate, then downloads the finished
deck. Overwrite protection does not apply in the browser: the tool hands the
file to your downloads, so there is no destination path to protect and no
--force equivalent.
Formatting behavior
The selected slide's Open XML is cloned rather than recreated. For supported placeholders, ConsultChimps changes only the text node and retains the run's font properties, the paragraph properties, and the shape's geometry, rotation, fill, line, margins, and alignment. Static text around placeholders remains in the same run. Text is not automatically shrunk, truncated, or reformatted, so review long values after generation.
PowerPoint can divide visually continuous text into several internal text runs, often after applying mixed formatting. ConsultChimps joins adjacent text runs within a shape for placeholder matching, writes the replacement into the first run, and clears the remaining placeholder fragments while preserving each run's formatting.
Initial limitations
This release does not populate images, charts, tables, SmartArt, or formulas. It does not evaluate expressions, apply conditional visibility, populate multiple template-slide groups, resize fonts, truncate text, or edit animations. Placeholders in tables, charts, SmartArt, and other non-shape text locations are rejected.
The operation preserves ordinary slide content by cloning the selected slide and its relationships, but it does not claim compatibility with every PowerPoint extension or third-party object type. Review presentations that use specialized add-ins, media, comments, or advanced animation metadata.
Troubleshooting
PPTX_MISSING_EXCEL_COLUMN means a placeholder has no exact worksheet header.
For example, {{growth_rate}} does not match growth. Rename the header or
placeholder, preserving case, and try again.
FILES_OUTPUT_EXISTS protects an existing presentation. Choose a new output
path, or use --force after confirming the existing file can be replaced.