SharpTables
1.0.0
一种多功能且可自定义的控制台表格式。生成桌子准备编写以进行控制,并能够自定义生成器生成表的字符。
有关示例程序,请参见示例。请记住,并非所有功能都包含在其中。
using SharpTables ;
Formatting f = Formatting . Minimalist ;
object [ , ] dataset = new object [ , ]
{
{ "Name" , "Age" , "City" } ,
{ "John Doe" , 42 , "New York" } ,
{ "Jane Doe" , 36 , "Chicago" } ,
{ "Joe Bloggs" , 25 , "Los Angeles" } ,
{ "Jenny Smith" , 28 , "Miami" }
} ;
Table table = Table . FromDataSet ( dataset ) // Also supports IEnumerable<IEnumerable<T>>
. AddRow ( new Row ( "Jimmy Jones" , null , "Las Vegas" ) ) // Supports nullables and manually adding rows
. UseNullOrEmptyReplacement ( "N/A" )
. UsePreset ( cell => cell . Color = cell . IsNumeric ? ConsoleColor . Yellow : ConsoleColor . White ) ;
table . Print ( ) ;
/*
Name Age City
────────────────────────────────────────────
John Doe 42 New York
Jane Doe 36 Chicago
Joe Bloggs 25 Los Angeles
Jenny Smith 28 Miami
Jimmy Jones N/A Las Vegas
*/Formatting类已经有一些预设,您也可以使用它们with record类型或制作自己的实例,因此可以使用它们进行修改。默认情况下,使用new Formatting()将使用Formatting.Default
// Using the power of records!
Formatting format = Formatting . ASCII with
{
DividerColor = ConsoleColor . DarkGray ,
BottomLeftDivider = '@' ,
BottomRightDivider = '@' ,
TopLeftDivider = '@' ,
TopRightDivider = '@' ,
MiddleDivider = '%' ,
Header = Formatting . ASCII . Header with { Separated = true , }
} ;
/*
+----------------+--------+----------------+
|Name |Age |City |
+----------------+--------+----------------+
@----------------+--------+----------------@
|John Doe |42 |New York |
+----------------%--------%----------------+
|Jane Doe |36 |Chicago |
+----------------%--------%----------------+
|Joe Bloggs |25 |Los Angeles |
+----------------%--------%----------------+
|Jenny Smith |28 |Miami |
+----------------%--------%----------------+
|Jimmy Jones |N/A |Las Vegas |
@----------------+--------+----------------@
*/您还可以使用特定于单元格的格式,可用于更改表格中的单元格。
List < Foo > foos = new List < Foo >
{
new Foo { A = 1 , B = "Hello" , C = true } ,
new Foo { A = 2 , B = "World" , C = false } ,
new Foo { A = 3 , B = "Something" , C = true } ,
} ;
// 'c' represents any cell in the table
table . UsePreset ( c =>
{
if ( bool . TryParse ( c . Text , out bool b ) )
{
c . Text = b ? "V" : "X" ;
c . Alignment = Alignment . Center ;
c . Color = b ? ConsoleColor . Green : ConsoleColor . Red ;
}
if ( int . TryParse ( c . Text , out int i ) )
{
c . Color = ConsoleColor . Yellow ;
c . Padding = 0 ;
c . Alignment = Alignment . Right ;
}
} ) ;
/*
The result is colored on console.
╔═══════════╦══════════════╦════╗
║ Is Active ║ Name ║ ID ║
╠═══════════╬══════════════╬════╣
│ V │Hello │ 1│
├───────────┼──────────────┼────┤
│ X │World │ 2│
├───────────┼──────────────┼────┤
│ V │Something │ 3│
└───────────┴──────────────┴────┘
*/ 如果您发现一个错误,请有任何疑问,想以任何其他方式实施自己的添加或做出贡献,请随时打开拉动请求!
该项目已根据麻省理工学院许可证