ConsultChimps

Populate a PowerPoint template

Create one formatted PowerPoint slide for every nonempty Excel record.

Try PowerPoint online

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_namerevenuegrowth_rate
Company A$12.4M8.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.pptx

Inspection 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.pptx

Slide 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.

On this page