What it does
This node applies pre-defined (empty) table structures to your already tagged and ordered table content, producing complete tables populated with that content.
Tip
Use the Set Table Attributes Node to add table summaries, header scopes and cell spans.
Use it for
Use the Tabulate node for tables with complex grid layouts that cannot be reliably detected by the Detect Table node.
Recommended workflow:
- For simple table layouts:
- Use the Group Spatially node to group grid elements and content.
- Pass the result to the Detect Table node.
→ This approach is faster and more efficient.
- For complex table layouts that detection fails on:
→ Use the Tabulate Node as a fallback solution.
How to use it
- Drag and drop the node from the Node Library into your template:
Node Library > Folder Shapes > Folder Grouping - Connect the node with other nodes in the Data Flow of your template. Connect the table content to the Items input port and the table structure to the Structures input port.
- Specify the settings in the Node Properties task pane.
Node Input
- Items: Connect a node containing only the table content (typically shape trees with tagged table text), excluding any shapes that form the table grid.
- Structures: Connect a node containing the table structure. This usually consists of path shapes (e.g., lines or rectangles) that visually define the table grid. Column and row structures should be placed in separate shape trees with distinct names to allow selection in the Node Properties.
Node Output
Tables: Outputs shape trees that represent complete tables.
Node Properties
Node Name
You can assign a custom name to the node to help identify its purpose within your template.
Column Structure Selector
Use Path Language to select the elements within the shape trees of the Structures input that contain the column structures.
Example:
/s:TableFrame/TableColumns/*
Selects all items nested inside second-level elements named "TableColumns", which are themselves inside the root element "TableFrame".
Row Structure Selector
Use Path Language to select the elements within the shape trees of the Structures input that contain the row structures.
Example:
/s:TableFrame/TableRows/*
Selects all items nested inside second-level elements named "TableRows", which are themselves inside the root element "TableFrame".
Column Boundary Left
Define which property of the column structures selected with the Column Structure Selector represents the left boundary of each column.
Available variables:
Note: All variables refer to the order and relationships of found columns or rows within a single table structure (as selected by the Column Structure Selector/Row Structure Selector), not to the list of the Structures input.
-
structure: the structure item selected with the Column Structure Selector.structurehas the same properties as a shape tree object. -
firstCol: refers to the first column in the sequence of columns identified by the Column Structure Selector within a single table structure. -
lastCol: refers to the last column in the sequence of selected columns identified by the Column Structure Selector within a single table structure. -
prevCol: refers to the immediately preceding column in the sequence of identified columns within a table structure.prevColhas the same properties as a shape tree object. -
nextCol: refers to the immediately following column in the sequence of identified columns within a table structure.nextColhas the same properties as a shape tree object. -
colIndex: index of the column in the sequence of identified columns within a table structure. -
colCount: total number of columns in the sequence of identified columns within a table structure.
Expected return type: double
Example:
structure.left
Uses the left edge of the selected column structures (e.g., background rectangles behind header cells).
Column Boundary Right
Define which property of the column structures selected with the Column Structure Selector represents the right boundary of each column.
Available variables:
-
structure: the structure item selected with the Column Structure Selector.structurehas the same properties as a shape tree object. -
firstCol: refers to the first column in the sequence of columns identified by the Column Structure Selector within a single table structure. -
lastCol: refers to the last column in the sequence of selected columns identified by the Column Structure Selector within a single table structure. -
prevCol: refers to the immediately preceding column in the sequence of identified columns within a table structure.prevColhas the same properties as a shape tree object. -
nextCol: refers to the immediately following column in the sequence of identified columns within a table structure.nextColhas the same properties as a shape tree object. -
colIndex: index of the column in the sequence of identified columns within a table structure. -
colCount: total number of columns in the sequence of identified columns within a table structure.
Expected return type: double
Example:
structure.right
Uses the right edge of the selected column structures (e.g., background rectangles behind header cells).
Row Boundary Top
Define which property of the row structures selected with the Row Structure Selector represents the top boundary of each row.
Available variables:
-
structure: the structure item selected with the Row Structure Selector.structurehas the same properties as a shape tree object. -
firstRow: refers to the first row in the sequence of rows identified by the Row Structure Selector within a single table structure. -
lastRow: refers to the last row in the sequence of selected rows identified by the Row Structure Selector within a single table structure. -
prevRow: refers to the immediately preceding row in the sequence of identified rows within a table structure.prevRowhas the same properties as a shape tree object. -
nextRow: refers to the immediately following row in the sequence of identified rows within a table structure.nextRowhas the same properties as a shape tree object. -
rowIndex: index of the row in the sequence of identified rows within a table structure. -
rowCount: total number of rows in the sequence of identified rows within a table structure.
Expected return type: double
Example:
first ? structure.top : prev.bottom
Uses the top edge of the selected row structure element if it's the first row in the table; otherwise, uses the bottom edge of the previous row.
Row Boundary Bottom
Define which property of the row structures selected with the Row Structure Selector represents the bottom boundary of each row.
Available variables:
-
structure: the structure item selected with the Row Structure Selector.structurehas the same properties as a shape tree object. -
firstRow: refers to the first row in the sequence of rows identified by the Row Structure Selector within a single table structure. -
lastRow: refers to the last row in the sequence of selected rows identified by the Row Structure Selector within a single table structure. -
prevRow: refers to the immediately preceding row in the sequence of identified rows within a table structure.prevRowhas the same properties as a shape tree object. -
nextRow: refers to the immediately following row in the sequence of identified rows within a table structure.nextRowhas the same properties as a shape tree object. -
rowIndex: index of the row in the sequence of identified rows within a table structure. -
rowCount: total number of rows in the sequence of identified rows within a table structure.
Expected return type: double
Example:
first ? structure.bottom : structure.top
Uses the bottom edge of the selected row structure if it's the first row in the table; otherwise, uses the top edge.
Table Name Expression
Assign names to table shape trees for easier reference in later processing. Use static strings or expressions.
Available variables:
-
firstTable: refers to the first table in the sequence of identified tables. -
lastTable: refers to the last table in the sequence of identified tables. -
tableIndex: index of the table in the sequence of identified tables. -
tableCount: total number of tables in the sequence of identified tables.
Expected return type: string
Example:
"Table"
Assigns the name "Table" to all table shape trees.
Row Name Expression
Assign names to row shape trees for easier reference in later processing. Use static strings or expressions.
Available variables:
-
firstRow: refers to the first row in a single table -
lastRow: refers to the last row in a single table -
rowIndex: index of the table row in a single table -
rowCount: total number of rows in a single table
Expected return type: string
Example:
"TR"
Assigns the name "TR" to all row shape trees.
Cell Name Expression
Assign names to cell shape trees for easier reference in later processing. Use static strings or expressions.
Available variables:
-
firstRow: refers to all cells in the first row in a single table -
lastRow: refers to all cells in the last row in a single table -
rowIndex: index of the table row in a single table -
rowCount: total number of rows in a single table -
firstCol: refers to all cells in the first column in a single table -
lastCol: refers to all cells in the last column in a single table -
colCount: total number of columns in a single table -
colIndex: index of the table column in a single table
Expected return type: string
Examples:
rowIndex = 0 ? "TH" : "TD"
Assigns the name "TH" to cells in the first row, and "TD" to all others.
rowIndex <= 1 ? "TH" : "TD"
Assigns the name "TH" to cells in the first and second column, and "TD" to all others.