C#控制檯程序中展示表格 (ConsoleTable類庫的使用)

C# 控制檯中展示表格

有時我們需要在控制檯程序中以表格的形式展示數據,剛好有一個叫ConsoleTable的第三方庫可以實現,使用這個庫,可以讓開發人員很輕鬆的將一組對象以表格的形式展示在控制檯中。而且這個庫寫的非常簡潔,只有一個cs文件,我讀了源代碼,確實寫得水平非常高。

Have you ever just wanted to output flat structured POCO out to console? Sure you have! This class will let you print a nicely formatted table right to your console as easily as possible.

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. 將對象打印成表格

也可將可枚舉的對象打印成表格,下面舉例如下。

  1. 先創建一個可枚舉的對象,我們按照官方的實例來。
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; }
}
  1. 打印可枚舉的對象
// 打印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();
  • 執行效果截圖
    配置表格格式參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章