Title: Table Order: 0 RedirectFrom: tables --- 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. ```csharp // 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.Render(table); ``` This will render the following output: ![Table](../assets/images/table.png) # Table appearance ## Borders For a list of borders, see the [Borders](xref:borders) appendix section. ```csharp // Sets the border table.Border(TableBorder.None); table.Border(TableBorder.Ascii); table.Border(TableBorder.Square); table.Border(TableBorder.Rounded); ``` ## Expand / Collapse ```csharp // 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 ```csharp // Hides all column headers table.HideHeaders(); ``` ## Set table width ```csharp // Sets the table width to 50 cells table.Width(50); ``` ## Alignment ```csharp table.Alignment(Justify.Right); table.RightAligned(); table.Centered(); table.LeftAligned(); ``` # Column appearance ## Alignment ```csharp table.Columns[0].Alignment(Justify.Right); table.Columns[0].LeftAligned(); table.Columns[0].Centered(); table.Columns[0].RightAligned(); ``` ## Padding ```csharp // 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 ```csharp // Disable column wrapping table.Columns[0].NoWrap(); ``` ## Set column width ```csharp // Set the column width table.Columns[0].Width(15); ```