Table
Tables are a perfect way of displaying tabular data in a terminal.
Spectre.Console
is super smart about rendering tables and will adjust
all columns to fit whatever is inside them. Anything that implements
IRenderable
can be used as a column header or column cell, even another table!
Usage
To render a table, create a Table
instance, add the number of
columns that you need, and then add the rows. Finish by passing the
table to a console's Render
method.
// Create a table
var table = new Table();
// Add some columns
table.AddColumn("Foo");
table.AddColumn(new TableColumn("Bar").Centered());
// Add some rows
table.AddRow("Baz", "[green]Qux[/]");
table.AddRow(new Markup("[blue]Corgi[/]"), new Panel("Waldo"));
// Render the table to the console
AnsiConsole.Write(table);
This will render the following output:
Table appearance
Borders
For a list of borders, see the Borders appendix section.
// Sets the border
table.Border(TableBorder.None);
table.Border(TableBorder.Ascii);
table.Border(TableBorder.Square);
table.Border(TableBorder.Rounded);
Expand / Collapse
// Table will take up as much space as it can
// with respect to other things.
table.Expand();
// Table will take up minimal width
table.Collapse();
Hide headers
// Hides all column headers
table.HideHeaders();
Set table width
// Sets the table width to 50 cells
table.Width(50);
Alignment
table.Alignment(Justify.Right);
table.RightAligned();
table.Centered();
table.LeftAligned();
Column appearance
Alignment
table.Columns[0].Alignment(Justify.Right);
table.Columns[0].LeftAligned();
table.Columns[0].Centered();
table.Columns[0].RightAligned();
Padding
// Set padding individually
table.Columns[0].PadLeft(3);
table.Columns[0].PadRight(5);
// Or chained together
table.Columns[0].PadLeft(3).PadRight(5);
// Or with the shorthand method if the left and right
// padding are identical. Vertical padding is ignored.
table.Columns[0].Padding(4, 0);
Disable column wrapping
// Disable column wrapping
table.Columns[0].NoWrap();
Set column width
// Set the column width
table.Columns[0].Width(15);
References
- Table Class