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 클래스에는 이미 약간의 사전 설정이 있으며 record 유형이기 with 사용을 수정하거나 고유 한 인스턴스를 만들 수도 있습니다. 기본적으로 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│
└───────────┴──────────────┴────┘
*/ 버그를 발견하거나 질문이 있거나, 자신의 추가를 구현하거나 다른 방법으로 기여하고 싶다면 풀 요청을 자유롭게 열어주십시오!
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다