Skip to main content

01 · Getting started in 5 minutes

Scenario

You have an .xlsx of customer renewals. You want a one-sheet report with the same rows, plus a "Tier" column derived from the renewal amount.

__config__

keyvalue
source_sheetRaw
source_table1
output_file_patternrenewal-report.xlsx

Template cells (sheet Report)

CellValue
A1Account
B1Region
C1Renewal
D1Tier
A2{{ [Account] }}
B2{{ [Region] }}
C2{{ [Renewal] }}
D2{{ IF([Renewal] > 10000, "Priority", "Standard") }}

Data (sheet Raw)

AccountRegionRenewal
Acme LogisticsSeoul18400
Beta WorksBusan7200
Coreon FoodsSeoul25100

Output (renewal-report.xlsx, sheet Report)

AccountRegionRenewalTier
Acme LogisticsSeoul18400Priority
Beta WorksBusan7200Standard
Coreon FoodsSeoul25100Priority

Notes

  • Row 2 of the template is the data block. xl3 expands one input row into one output row, preserving styles, number formats, and merges from the template row.
  • [Account] is a column reference — xl3 resolves it to the Account column of the current source row.
  • {{ ... }} is a template block — anything inside is evaluated as an XTL expression. Whitespace inside the braces is insignificant.
  • The data block stops at the first non-blank row that doesn't contain a template block. Add a footer row (e.g., a "Total" cell) and it stays put while the data block expands above it.

See also: spec/language.md "Template Blocks" and "Source Columns".