C# 控制台中展示表格
有时我们需要在控制台程序中以表格的形式展示数据,刚好有一个叫ConsoleTable的第三方库可以实现,使用这个库,可以让开发人员很轻松的将一组对象以表格的形式展示在控制台中。而且这个库写的非常简洁,只有一个cs文件,我读了源代码,确实写得水平非常高。
1. CONSOLETABLE 安装及使用
ConsoleTables GitHub项目地址:ConsoleTables
我们可以通过NuGet来安装,执行命令或者用vs的NuGet管理控制台来完成安装。
Install-Package ConsoleTables -Version 2.4.1
引用命名空间 using ConsoleTables;后即可使用。
2. 以特定格式打印表格
用ConsoleTables类库打印表格可以有三种形式,分别是默认格式,markdown格式,以及交替格式和最简格式。下面举例说明。
var table = new ConsoleTable("one", "two", "three");
table.AddRow(1, 2, 3)
.AddRow("this line should be longer", "yes it is", "oh");
// 默认格式的表格
Console.WriteLine("\nFORMAT: Default:\n");
table.Write();
// Markdwon格式的表格
Console.WriteLine("\nFORMAT: MarkDown:\n");
table.Write(Format.MarkDown);
// 交替格式的表格
Console.WriteLine("\nFORMAT: Alternative:\n");
table.Write(Format.Alternative);
Console.WriteLine();
// 最简格式的表格
Console.WriteLine("\nFORMAT: Minimal:\n");
table.Write(Format.Minimal);
Console.WriteLine();
// 以表格形式展示
table = new ConsoleTable("I've", "got", "nothing");
table.Write();
Console.WriteLine();
运行效果截图:
3. 将对象打印成表格
也可将可枚举的对象打印成表格,下面举例如下。
- 先创建一个可枚举的对象,我们按照官方的实例来。
public class Something
{
public Something()
{
Id = Guid.NewGuid().ToString("N");
Name = "Khalid Abuhkameh";
Date = DateTime.Now;
}
public string Id { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public int NumberOfChildren { get; set; }
}
- 打印可枚举的对象
// 打印10行数据
var rows = Enumerable.Repeat(new Something(), 10);
ConsoleTable.From<Something>(rows).Write();
// 打印0行数据
rows = Enumerable.Repeat(new Something(), 0);
ConsoleTable.From<Something>(rows).Write();
执行效果截图
4. 配置表格格式的参数
我们还可以配置表格的格式,比如第2列数据靠右对齐,配置是否显示表格行数等。
// 配置 NumberAlignment 列数据右居中
Console.WriteLine("\nNumberAlignment = Alignment.Right\n");
rows = Enumerable.Repeat(new Something(), 2);
ConsoleTable
.From(rows)
.Configure(o => o.NumberAlignment = Alignment.Right)
.Write();
// 配置不显示表格的行数
var noCount =
new ConsoleTable(new ConsoleTableOptions
{
Columns = new[] { "one", "two", "three" },
EnableCount = false
});
noCount.AddRow(1, 2, 3).Write();
执行效果截图