Skip to main content

Populate Excel in Make

Populate Excel is a PDF4me module for Make that fills an Excel workbook containing Smart Marker placeholders with live JSON data automatically, expanding arrays row by row and recalculating formulas in a single operation. Use it to generate filled invoice templates, dynamic reports, or data-driven Excel outputs from any JSON source in your scenario without manual data entry.

What this module does

PDF4me Excel, Populate accepts an Excel template with Smart Marker placeholders and a JSON data payload, and returns a fully populated Excel workbook within your Make scenario. Arrays in the JSON expand automatically into rows, formulas recalculate after insertion, and you can target specific worksheets by index. The result is a ready-to-distribute Excel report generated entirely from data in your scenario, with no manual entry.

Related Blog Posts
No blog post yet for this feature — coming soon.
In the meantime, browse the PDF4me blog for tutorials and workflows across every platform.
Visit the blog →

Authenticating Your API Request

Every PDF4me module in Make requires a valid Connection. Create or select one that holds your PDF4me API key so the scenario can authenticate Excel population requests securely.

Important Facts You Should Not Miss

Smart Marker names must match JSON keys exactly
The field names in your JSON payload must match the Smart Marker placeholders in the Excel template exactly, including case. A marker &=Items.ItemName requires a JSON array named Items containing objects with an ItemName property. A mismatch leaves the placeholder unreplaced in the output. Always verify key names before running the scenario.
Arrays expand row-by-row downward automatically
When the JSON value bound to a Smart Marker is an array, the module inserts one row per element below the marker cell, shifting existing rows down. There is no need to pre-size the template for the expected row count. This makes the Populate module suitable for invoices, order lists, and any report where the number of data rows varies at run time.
Set Strict JSON Strings to No for numeric formulas
With Strict JSON Strings at Yes (the default), numeric values wrapped in quotes in the JSON such as "55" are inserted as text in Excel. If a downstream SUM or other formula needs to treat them as numbers, set Strict JSON Strings to No so the module coerces quoted numeric strings to numeric Excel cell values before population.
Make PDF4me Excel Populate module showing Connection field, File set to Dropbox - Download a File, and JSON Data textarea with Items array containing ItemName, Qty, and UnitPrice fields

Map Connection, set File to Dropbox or Map, and pass a JSON payload whose keys match the Smart Marker field names in your Excel template.

Parameters

Required: Connection, File (source), and JSON Data must be provided. All other fields are optional. For Smart Marker syntax reference, see the Aspose Cells WorkbookDesigner documentation. For culture codes, see the Microsoft BCP 47 culture name reference.

ParameterRequiredWhat it doesExample
ConnectionRequiredPDF4me Excel API connection. Click Add and paste your API key if connecting for the first time.My PDF4me Excel connection
FileRequiredFile source mode. Map supplies the Excel template binary from a prior module output. Dropbox - Download a File pulls directly from Dropbox, reducing the number of modules needed.Map
File NameRequiredExcel template filename including extension (.xlsx). Map from the prior module file name output or enter a static value. Used to identify the template and name the output file.invoice-template.xlsx
DocumentRequiredBinary content of the Excel template workbook. Map from a Google Drive download, SharePoint file, email attachment, or HTTP response. Must be the raw file buffer.1. Data
JSON DataRequiredJSON string whose keys match the Smart Marker placeholders in the Excel template. Arrays expand row by row. Scalar values fill single cells. Pass as a mapped string from a prior module or a static JSON literal.{"Items":[{"ItemName":"A123","Qty":"55","UnitPrice":"3.05"}]}
Strict JSON StringsNoYes (default): inserts quoted string values as text in Excel. No: coerces quoted numeric strings to numeric cell values so formulas can operate on them. Empty behaves like Yes.Yes
Culture & Language SettingsNoBCP 47 locale code controlling date and number formatting in the output. Defaults to en-US (MM/DD/YYYY, period decimal). Change to match your data source locale: de-DE, fr-FR, and so on.en-US
Calculate FormulasNoYes (default): recalculates all workbook formulas after JSON data is inserted. No: skips recalculation. Enable when the template contains SUM, VLOOKUP, or other formulas that depend on the populated values.Yes
Worksheet IndexesNoComma-separated 1-based indexes of worksheets to populate. Enter 1 for the first sheet only, 1,3 for first and third. Leave empty to populate all worksheets in the workbook.1
Quote Prefix To StyleNoYes: converts Excel quote-prefix formatting to visible cell style. No: removes it. Empty (default): preserves existing quote-prefix behavior without conversion. Use Empty unless your template specifically requires style conversion.Empty
Make PDF4me Excel Populate advanced settings showing Strict JSON Strings Yes, Culture and Language Settings en-US, Calculate Formulas Yes, Worksheet Indexes 1, and Quote Prefix To Style Empty

Optional settings: Strict JSON Strings, Culture & Language Settings, Calculate Formulas, Worksheet Indexes, and Quote Prefix To Style. Set Calculate Formulas: Yes so workbook formulas reflect the populated data.

Output

FieldTypeWhat it contains
documentBase64 StringThe fully populated Excel workbook encoded as Base64. Decode it with a Make Tools module, then pass the binary to a Google Drive upload, email attachment, Dropbox create-file, or HTTP POST to distribute the report.
FileNameStringOutput filename for the populated workbook, derived from the input template name. Use this as the target filename when saving to cloud storage to preserve the original naming convention.
SuccessBooleanTrue if the template was populated without errors. Add a Make filter on this field before routing the output to avoid processing incomplete results from failed runs.

Quick sample (try in 3 minutes)

Two ready-to-run combinations match the screenshots above. Download each pair, map the XLSX into Document (or use Dropbox file mode), paste the JSON into JSON Data, and run the scenario once.

Combo A: simple Items (matches the parameter screenshot)

Uses template.xlsx with Worksheet Indexes = 2 (Sheet2 has the simple Items markers used in the parameter screenshot). Pair with the matching flat Items JSON.

Combo B: rich invoice with Excel Table

Uses the Invoice sheet of template.xlsx with nested &=RootData.Items.* markers, structured-reference formulas in a SimpleInvoice Table, subtotal + tax + total math.

Combo C: multi-sheet workbook

Three-sheet template demonstrating different data sources per sheet. Sheet order in the file is Items, Employees, Products.

How to Populate an Excel Template in Make

  1. Open your Excel template and place Smart Marker placeholders in cells where data should appear: use &=ObjectName.FieldName for scalar values and &=ArrayName.FieldName for arrays that expand row by row.
  2. Add PDF4me Excel to your Make scenario and select Excel - Populate.
  3. Select or create a Connection with your PDF4me API key.
  4. Set File to Map and connect File Name and Document from a Google Drive, SharePoint, or Dropbox download module. Or set File to Dropbox - Download a File to pull the template directly.
  5. Map JSON Data from a prior module that produces a JSON string, or paste a static JSON literal. Ensure every key matches the corresponding Smart Marker field name in the template.
  6. Set Calculate Formulas to Yes if the template contains formulas that depend on populated values. Enter Worksheet Indexes to target only specific sheets, or leave empty for all.
  7. Click Save and run. Decode the document output and route it to a cloud storage upload, email, or API as needed.

When Should I Use Populate Excel in Make?

When Should I Use Populate Excel in Make?Common Make automation patterns using the Populate Excel module.
Generate invoices automatically from order data
  1. A webhook receives a new order payload containing customer details and line items as a JSON array.
  2. The scenario downloads a branded invoice template from Google Drive.
  3. Populate Excel maps the order JSON to Smart Markers in the template, expanding one row per line item and recalculating the total formula.
  4. The populated invoice is emailed to the customer and uploaded to the client folder in SharePoint.
Fill weekly KPI reports from a database API
  1. A weekly scheduled trigger fires and calls a REST API to retrieve the latest KPI metrics as JSON.
  2. The scenario pulls a KPI report template from Dropbox using the built-in Dropbox file mode.
  3. Populate Excel inserts the metric values into the template cells and recalculates the trend formulas.
  4. The completed report is posted to a Slack channel and saved to a dated archive folder in Google Drive.
Populate per-client Excel summaries from CRM exports
  1. A CRM webhook fires when a deal is marked closed-won, providing client and deal data as JSON.
  2. The scenario downloads a deal-summary template from SharePoint targeting Worksheet Index 1 only.
  3. Populate Excel fills the client name, deal value, and product line items into the template.
  4. The populated summary is uploaded to the client folder and a task is created in the project management tool for the account team.

Frequently Asked Questions

How do I auto populate an Excel template with data in Make?+
Use the PDF4me Excel - Populate module. Create an Excel template with Smart Marker placeholders such as &=Items.ItemName, then pass a matching JSON string in the JSON Data field. The module replaces every placeholder with the corresponding value from the JSON, expands arrays into rows, and returns the filled workbook ready for distribution.
What are Smart Markers and how do I write them in Excel?+
Smart Markers are placeholder strings placed in Excel cells that the Populate module replaces with live JSON data at run time. Write them as &=ObjectName.FieldName for scalar values or &=ArrayName.FieldName for arrays. For example, placing &=Items.ItemName in a cell tells the module to insert the ItemName property from each element of the Items JSON array, one per row.
What does Calculate Formulas do and when should I enable it?+
Calculate Formulas: Yes (the default) triggers a full workbook formula recalculation after the JSON data is inserted. Enable it whenever the template contains SUM, VLOOKUP, IF, or other formulas that reference the populated cells, so the formula results reflect the new data. Set it to No only if formula recalculation is unnecessary or handled downstream.
How do I populate only specific worksheets and not the whole workbook?+
Enter the 1-based worksheet indexes as a comma-separated list in the Worksheet Indexes field: for example 1 for the first sheet only, or 1,3 for the first and third. Leave the field empty to populate all worksheets. This is useful when the template contains data sheets with Smart Markers alongside static reference or chart sheets you do not want the module to modify.
What is the difference between Strict JSON Strings Yes and No?+
With Strict JSON Strings set to Yes (the default), string values in the JSON such as '55' are inserted into Excel cells as text. With No, quoted numeric strings are coerced to numeric Excel values. Choose No when downstream formulas such as SUM need to treat those values as numbers rather than text strings.
What does Quote Prefix To Style do?+
Quote Prefix To Style controls whether Excel quote-prefix cell formatting (a hidden attribute that forces text interpretation of cell content) is converted to a visible cell style in the output workbook. Leave it at Empty (the default) for standard behavior. Set Yes only if your template uses quote-prefix styling and you need that to appear as a visible format in the populated output.

Get Help