Table¶
28 nodes. Types ending in [] are lists. An input with a default is optional.
Nodes¶
Table.AddColumn¶
Adds a column at the end: a list with one value per row, or a single value repeated on every row.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
name required |
string |
— | The new column's name. |
values required |
any |
— | A list with one value per row, or a single value repeated on every row. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table with the column added at the end. |
Tags: add column append new field constant
Table.AddFormulaColumn¶
Adds a column calculated per row from the others, e.g. "Width * Height * Length / 1000000000" (same formula language as Math.Formula; [Names with spaces] in brackets). A blank or text cell is never counted as 0: a row where a column the formula uses is blank or not a number gets an empty cell, and so does a result that is not a finite number (a division by zero). The node turns amber and says how many rows were left empty.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
name required |
string |
— | The new column's name. |
formula required |
string |
— | A formula over the column names, e.g. Width * Height or [Fire Rating] / 60 (names with spaces in square brackets). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table with the calculated column added at the end; a row where a column the formula uses is blank or not a number, and a result that is not a finite number, get an empty cell. |
Tags: formula calculated computed column expression volume area
Table.Column¶
The cells of one column, top to bottom — wire it into List.Sum, List.CountValues, Search or a property writer.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
column required |
string |
— | The column name. |
Outputs
| Output | Type | What it gives |
|---|---|---|
values |
any[] |
The cells of that column, top to bottom. |
Tags: column field values extract pick
Table.Concat¶
Stacks tables one below the other, matching columns by name; a column one table lacks is left empty — weekly snapshots, one table per model.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
tables any number of wires required |
any[] |
— | The tables, top first (wire several into the one socket). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
One table with every column of every table (matched by name; missing cells are empty). |
Tags: append union stack merge combine rbind
Table.Distinct¶
Keeps only the first row for each distinct value of the given columns (a list of names or one text with commas), or of the whole row when none are given.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
columns |
any[] |
null |
Columns that must differ: a list of names, or one text with names separated by commas; leave empty to compare whole rows. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table with only the first row of each kind. |
Tags: unique duplicates dedupe remove duplicates distinct
Table.Filter¶
Splits a table by a test on one column — Level == "L02", Length > 3000, Name matches "W-*", Level in "L01, L02" — into the rows that pass and the rows that do not. A blank cell never passes > >= < <=, and neither does text that is not a number when you compare with a number (the node turns amber and counts them); they land in the rejected table. in and notIn take a list of values, or one text with the values separated by commas; an empty cell is in no list. Regex tests are case sensitive unless ignoreCase is ticked.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
column required |
string |
— | The column to test. |
test |
string |
"==" |
The test: ==, !=, >, >=, <, <=, contains, !contains, startsWith, endsWith, matches (wildcards * and ?), regex, in, notIn, isNull, notNull, isEmpty, notEmpty. |
value |
any |
null |
What to test against (unused by the null / empty tests). For in and notIn: the values to look for, as a list or as one text with the values separated by commas. |
ignoreCase |
boolean |
true |
True (default) ignores upper/lower case in text tests. |
Outputs
| Output | Type |
|---|---|
matched |
dict |
rejected |
dict |
Returns: The rows that passed and the rows that did not, both as tables.
Tags: filter where query select rows search keep in list is one of member of not in
Table.FromColumns¶
Makes a table from columns: a list of lists, one per column, with optional names — for results that come as parallel lists.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
columns required |
any[] |
— | One list per column (they may differ in length; short ones are padded with nulls). |
headers |
any[] |
null |
The column names (leave unwired for Column 1, Column 2 …). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table. |
Tags: columns parallel lists zip table transpose
Table.FromCsvFile¶
Reads a CSV file straight into a table (numbers become numbers, everything else stays text). The delimiter is a comma, a semicolon (European Excel), a bar or a tab.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
path required |
string |
— | The CSV file. |
delimiter |
string |
"," |
The cell separator: a comma (default), a semicolon, a bar or tab. |
firstRowIsHeader |
boolean |
true |
True (default) takes the first row as the column names. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table. |
Tags: csv read import load file tsv tab semicolon
Table.FromDictionaries¶
Makes a table from a list of dictionaries (one row each); the columns are all their keys — property bags become rows.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
dictionaries required |
any[] |
— | Dictionaries such as the ones Properties.AsDictionary returns; the columns are all their keys, in order of first appearance. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table. |
Tags: properties records json dictionary table dataframe
Table.FromExcelFile¶
Reads an Excel worksheet straight into a table. Dates arrive as Excel serial numbers; DateTime.FromExcelSerial turns one into a date.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
path required |
string |
— | The .xlsx file. |
sheet |
string |
"" |
The worksheet name (empty takes the first sheet). |
firstRowIsHeader |
boolean |
true |
True (default) takes the first row as the column names. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table. |
Tags: excel xlsx read import load spreadsheet
Table.FromRows¶
Makes a table from rows of cells and column names (or from the first row) — the doorway from Excel, CSV and list data.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
rows required |
any[] |
— | The rows; each row a list of cells (as read by Excel.ReadFromFile or CSV.ReadFromFile). |
headers |
any[] |
null |
The column names. Leave unwired to name the columns Column 1, Column 2 …, or tick firstRowIsHeader. |
firstRowIsHeader |
boolean |
false |
True takes the first row as the column names (when no headers are wired). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table. |
Tags: create table dataframe rows headers sheet grid
Table.GroupBy¶
Groups rows by one or more columns (a list of names or one text with commas) and works out count, sum, average, min, max, median, first, last, list or distinct per group — "sum:Volume", "count" — the pivot-table core for quantities. Blank cells are skipped by sum, average and median; text in a number column is an error that names it.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
by required |
any[] |
— | The column(s) to group by: a list of names, or one text with names separated by commas; leave empty for one total row. |
aggregations required |
any[] |
— | What to work out per group, one text each: count, sum:Volume, average:Length as AvgLength. Functions: count, sum, average, min, max, median, first, last, list, distinct. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
One row per group: the grouping columns followed by one column per aggregation. |
Tags: group aggregate summary rollup total sum count pivot takeoff qto
Table.Info¶
How many rows and columns a table has, and its column names (the headers output is the list of names, in column order).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
Outputs
| Output | Type |
|---|---|
rowCount |
integer |
columnCount |
integer |
headers |
string[] |
Returns: rowCount, columnCount and headers.
Tags: size count shape dimensions length columns names header headers fields column names
Table.Join¶
Joins two tables on one or more key columns (inner, left or outer) — add the Excel columns to the model data by GUID or mark. Keys match as text, so 42 and "42" are the same, and a key that looks like a GUID matches whatever its capitals and small letters (other text keys must match exactly). An empty key never matches anything, not even another empty key. leftKey and rightKey take one column name, several separated by commas (or a list) to join on Level and Mark together; leave rightKey empty when both tables use the same names. Table.Unmatched lists the left rows that found no partner (it replaces Table.JoinByKey's unmatchedKeys).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
left required |
CamelGraphTable |
— | The main table. |
right required |
CamelGraphTable |
— | The table to add columns from. |
leftKey required |
any[] |
— | The key column(s) of the left table: one name, several names separated by commas, or a list of names. |
rightKey |
any[] |
null |
The key column(s) of the right table, as many as in leftKey and in the same order (leave empty to use the same names as leftKey). |
kind |
string |
"inner" |
inner keeps rows with a match on both sides; left keeps every left row; outer keeps every row of both. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The joined table: the left columns, then the right columns (a repeated name gets " (right)"). |
Tags: join merge lookup vlookup combine match relate joinbykey by key guid mark
Table.Pivot¶
Cross-tabulates: rows from one column, columns from another, each cell the sum (or count, average …) of a third — clashes by level and status.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
rowColumn required |
string |
— | The column whose values become the rows. |
columnColumn required |
string |
— | The column whose values become the new columns. |
valueColumn |
string |
"" |
The column to total in each cell (not needed for count). |
aggregation |
string |
"sum" |
How to combine: sum (default), count, average, min, max, median, first, last, list or distinct. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
One row per row value, one column per column value. |
Tags: pivot cross-tab matrix crosstab summary levels by status
Table.RemoveColumns¶
Drops the listed columns and keeps the rest. Names come as a list or as one text separated by commas; a column whose name has a comma in it ("Area, gross") is found by its whole name. An empty list removes nothing and says so.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
columns required |
any[] |
— | The names to remove: a list, or one text with names separated by commas. A column whose own name contains a comma works when you type or wire that name whole. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table without them. |
Tags: drop delete columns remove hide
Table.RenameColumn¶
Renames one column.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
column required |
string |
— | The current name. |
newName required |
string |
— | The new name. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table with the column renamed. |
Tags: rename header column name
Table.Row¶
One row of a table as a dictionary from column name to cell (0 is the first row; -1 the last).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
index required |
integer |
— | The row number, counting from 0 (negative counts from the end). |
Outputs
| Output | Type | What it gives |
|---|---|---|
row |
dict |
The row as a dictionary from column name to cell. |
Tags: row record line get
Table.Rows¶
The rows of a table as a list of lists of cells (for Excel.WriteToFile, CSV.WriteToFile and the List nodes).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
Outputs
| Output | Type | What it gives |
|---|---|---|
rows |
any[] |
A list of rows, each a list of cells in column order (feeds Excel.WriteToFile and CSV.WriteToFile). |
Tags: rows cells list export values
Table.SelectColumns¶
Keeps only the listed columns, in that order. Names come as a list or as one text separated by commas; a column whose name has a comma in it ("Area, gross") is found by its whole name. At least one name is needed.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
columns required |
any[] |
— | The names to keep: a list, or one text with names separated by commas. A column whose own name contains a comma ("Area, gross") works when you type or wire that name whole. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The narrower table. |
Tags: keep columns pick reorder project narrow
Table.SetColumn¶
Replaces the cells of a column in place, keeping its position and name, or adds the column at the end when there is none of that name. Give a list with one value per row, or a single value repeated on every row — take a column out with Table.Column, clean it with String or List nodes, and put it back here.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
name required |
string |
— | The column to replace (found like every other column name: exactly, then ignoring case and spaces). A name the table does not have adds a new column at the end. |
values required |
any |
— | A list with one value per row, or a single value repeated on every row. |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The table with that column's cells replaced, in the same position (the column keeps its name). |
Tags: replace column overwrite update column set clean modify column column fill
Table.Slice¶
Takes count rows from a starting row (count -1 takes all the rest) — the first 10 rows: start 0, count 10.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
start |
integer |
0 |
The first row to take, counting from 0 (not below 0). |
count |
integer |
-1 |
How many rows (-1 takes all the rest; not below -1). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The rows from start on, at most count of them. |
Tags: take skip head top limit page subset
Table.Sort¶
Sorts the rows by one or more columns, as a list of names or one text ("Level, -Length" sorts by level, then longest first); numbers numerically, text alphabetically, empty cells last. A list of names sorts once by all of them, in that order.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
columns required |
any[] |
— | Columns to sort by: a list of names, or one text with names separated by commas; add " desc" or a leading "-" for largest first: Level, -Length. A list sorts by its first name, then the next. |
descending |
boolean |
false |
True sorts every column largest first (a column can still opt out with " asc"). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The sorted table; empty cells go last and equal rows keep their order. |
Tags: sort order rank arrange ascending descending
Table.ToCsvFile¶
Writes one table, with its column names, to a CSV file; a file that is already there is replaced. The delimiter is a comma, a semicolon, a bar or a tab. A list of tables is an error (they would overwrite each other): stack them with Table.Concat first.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
any |
— | The table to write: one table, not a list of them. |
path required |
string |
— | The file to write (replaced when it exists; folders are created). |
delimiter |
string |
"," |
The cell separator: a comma (default), a semicolon, a bar or tab. |
Outputs
| Output | Type | What it gives |
|---|---|---|
path |
string |
The path that was written. |
Tags: csv write export save file tsv tab semicolon
Table.ToDictionaries¶
The rows of a table as dictionaries (column name to cell) — for JSON.WriteToFile or per-row lookups.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
Outputs
| Output | Type | What it gives |
|---|---|---|
dictionaries |
any[] |
One dictionary per row, from column name to cell. |
Tags: records json dictionary objects
Table.ToExcelFile¶
Writes one table, with its column names, to an Excel worksheet. With append ticked the sheet is added to the workbook that is already there; without it the whole file is replaced, other sheets included. For several sheets in one workbook use one node per table, each with its own sheet name and append ticked, and wire the path of one into the next so they run in order. A list of tables is an error (they would overwrite each other).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
any |
— | The table to write: one table, not a list of them. |
path required |
string |
— | The .xlsx file to write. |
sheet |
string |
"Sheet1" |
The worksheet name. |
append |
boolean |
false |
True adds the sheet to an existing workbook instead of replacing the file. |
Outputs
| Output | Type | What it gives |
|---|---|---|
path |
string |
The path that was written. |
Tags: excel xlsx write export save spreadsheet sheet
Table.ToText¶
Renders a table as Markdown, CSV, tab-separated or an HTML table — for a report, an e-mail or a log.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
table required |
CamelGraphTable |
— | The table. |
format |
string |
"markdown" |
markdown (default), csv, tsv, or html. |
Outputs
| Output | Type | What it gives |
|---|---|---|
text |
string |
The table rendered in that format, ready for Text.WriteToFile, an e-mail or Log.Write. |
Tags: markdown csv html render print string report
Table.Unmatched¶
The rows of the left table that find no partner in the right table, using the same keys and the same matching as Table.Join (GUIDs match whatever their case, a blank key never matches) — which model elements have no row in the Excel list, which GUIDs were not found.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
left required |
CamelGraphTable |
— | The main table. |
right required |
CamelGraphTable |
— | The table to look the keys up in. |
leftKey required |
any[] |
— | The key column(s) of the left table: one name, several names separated by commas, or a list of names. |
rightKey |
any[] |
null |
The key column(s) of the right table, as many as in leftKey and in the same order (leave empty to use the same names as leftKey). |
Outputs
| Output | Type | What it gives |
|---|---|---|
table |
CamelGraphTable |
The left rows with no partner, with the left columns only (rows with a blank key are always among them). |
Tags: unmatched anti join missing not found no match difference left only joinbykey unmatchedkeys guid mark