「オブジェクトを手軽にテーブル状にテキスト出力したい!」
そんなことを思ったことはありませんか?
これは何?
FluentTextTableは、柔軟で簡単な「全角文字に対応した」.NET用のテキストテーブルライブラリです。デバッグや簡単なツールなどに利用できます。
- GitHub - https://github.com/nuitsjp/FluentTextTable
- NuGet - https://www.nuget.org/packages/FluentTextTable
つぎのような簡単なコードから・・・
varusers=new[]{newUser{Id=1,Name="ビル・ゲイツ",Birthday=DateTime.Parse("1955/10/28")},newUser{Id=2,Name="スティーブ・ジョブズ",Birthday=DateTime.Parse("1955/2/24")}};Build.TextTable<User>().WriteLine(users);
このようにコンソールにテーブル状に値を表示することができます。
複雑なテーブルの書式を、簡単かつ流暢(Fluent)に設定できます。
Build.TextTable<User>(builder=>{builder.Borders.Horizontals.AllStylesAs("-").Borders.HeaderHorizontal.AllStylesAs("=").Columns.Add(x=>x.Id).HorizontalAlignmentAs(HorizontalAlignment.Right).Columns.Add(x=>x.Name).VerticalAlignmentAs(VerticalAlignment.Center).Columns.Add(x=>x.Birthday).VerticalAlignmentAs(VerticalAlignment.Bottom).FormatAs("{0:yyyy/MM/dd}").Columns.Add(x=>x.Occupations).FormatAs("- {0}");}).WriteLine(users);
つぎの書式のカスタマイズをサポートとしています。
- 列指定(もしくは列自動生成)
- オブジェクトのフォーマット
- 水平・垂直アライメント
- 罫線文字の変更
- マージンとパディング
マークダウン形式での出力にもサポートしています。
Build.MarkdownTable<User>().WriteLine(users);
クイックスタート
.NET Framework 4.0以上、.NET Standard 2.0以上をサポートしています。NuGetからインストールして利用してください。
>Install-Package FluentTextTable
出力対象となるクラスを定義します。
publicclassUser{publicintId{get;set;}publicstringEnglishName{get;set;}publicstringJapaneseName{get;set;}publicDateTimeBirthday;}
Buildクラスを利用して出力対象クラス用のテーブルを作成します。
デフォルトではpublicなプロパティ・フィールドのすべてが出力の対象となります。
vartable=Build.TextTable<User>();
行に該当するオブジェクトを生成して、出力します。
varusers=new[]{newUser{Id=1,EnglishName="Bill Gates",JapaneseName="ビル・ゲイツ",Birthday=DateTime.Parse("1955/10/28")},newUser{Id=2,EnglishName="Steven Jobs",JapaneseName="スティーブ・ジョブズ",Birthday=DateTime.Parse("1955/2/24")}};Build.TextTable<User>().WriteLine(users);
詳細な利用方法
Githubに利用方法をまとめています。
機会があればぜひご利用ください!