Skip to main content
Skip table of contents

repeat (XLSX)

An Excel content command that iterates through all items of a Collection and produces a copy of the cells within the area of its host Name, cell contents included, for every item in the Collection. Any inline EL-expressions within the cells are evaluated on each round of the iteration, with one of the items of the Collection as a variable in the context for these expressions to make use of.

If repeat's value resolves into a Collection or Map with more than one item, the copies of the cells it will produce will be placed directly below the host Name's original area. If any cells already below the area (ie. cells in the same columns but with higher row numbers) have any contents, those contents are pushed downwards as many rows as repeat produces past the Named area's height in rows.

This attribute has a priority of 100.

Syntax:

repeat(value,var,varStatus,roundTest)

With required attributes only:

repeat(value,var)

Attributes

#1 - value

Required

Value type

EL-evaluated

Yes

Collection, Map, Data Item

Yes

This attribute defines the container whose contents the command will iterate through. While this container is primarily expected to be a Collection, two other types of values are also accepted.

The three types are handled in the following ways:

  • If the value is a Collection, repeat iterates through the items in it in their proper order.  

  • If the value is a Map, repeat iterates through its entries. The item of every round is therefore a Map entry that allows both the key and the value to accessed. Note that the order in which the entries appear in is, in most cases, not consistent and basically random.

  • If the value is a Data Item, repeat performs just one loop round, with the Data Item being the item of the round.  

#2 - var

Required

Value type

EL-evaluated

Yes

String

No

The value of this attribute defines the name of the variable that holds the current item of the loop, which inline EL-expressions in the copied cells may refer to.

#3 - varStatus

Required

Value type

EL-evaluated

No

String

No

Defines the name of the variable that holds a Loop Status value. Loop Status has the properties count, first, last and index. A new value is generated for every iteration of the loop.

Property count is the number of the iteration starting from 1.
Property index is same as count with the difference that it starts from 0.
Property first is a Boolean true during the first round of the loop. Note that if roundTest causes the first item of the iteration to be skipped, this will never be true.
Property last is a Boolean true during the last round of the loop. Note that if roundTest causes the last item of the iteration to be skipped, this will never be true.

#4 - roundTest

Required

Value type

EL-evaluated

No

Boolean

Yes

This attribute can be used to define a condition for skipping certain iteration rounds. This attribute's expression is evaluated at the start of every round and if it doesn't resolve into true, the current item and loop round is skipped, resulting in no copy of the content being produced.

If undefined, no iteration rounds are skipped.

Examples

As Excel content commands cannot exist within each other, inline EL-expressions are the only form of dynamic content that can be within this version of repeat. If "opportunities" was a Collection of Data items with Opportunity record data, the following repeat would loop over them:

CODE
repeat(opportunities,opp)

Then in any of the cells within the Name's area, expressions like ${opp.Name} and ${opp.Amount} would bring the queried field values of the records into the cells.

The fourth attribute roundTest can be useful in limiting which data you wish to display. With this Collection of Opportunity data, we could limit it so that only Opportunities that are not closed are displayed by checking the value of the IsClosed field:

CODE
repeat(opportunities,opp,,!opp.IsClosed)
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.