IRONSOFTWAREHOME

コンソールにテーブルを追加する - Spectre コンソールシリーズ

コンソールへのテーブルの追加 - Spectre コンソール シリーズ

Tim Corey

10 分 24 秒

Spectre.Consoleは、美しいコンソールアプリケーションの作成を支援する強力な.NETライブラリです。 プレーンテキスト出力の代わりに、構造化されたレイアウトを構築したり、色を使用したり、プログレスバーやインタラクティブなプロンプトを表示することもできます。Spectre Console シリーズでは、Tim Corey がこのライブラリを最大限に活用する方法を、実践的なレッスンで開発者に紹介します。

彼のビデオ"Adding Tables to Your Console - Spectre Console Series"では、Tim は Spectre.Console のテーブルに焦点を当てています。 テーブルは、構造化されたデータを整列、パディング、ボーダー、スタイルで表示するためのコア機能です。 ティムのウォークスルーを詳しく見て、この機能の使い方を正確に理解しましょう。

Spectre.Consoleを使い始める

冒頭(0:00)で、Tim は Spectre.Console によって視覚的に魅力的で情報量の多いアプリケーションを作成できることを説明します。 Spectre.Console という NuGet パッケージとして配布されます。 で簡単にインストールできます:

// dotnet add package spectre console
dotnet add package Spectre.Console

このライブラリをインストールすると、コンソールアプリケーションで情報を表示するのが非常に簡単になります。 Timはまた、さらなる例に興味がある人のために、ビデオで提供されるドキュメントとソースコードのリンクを指摘しています。

最初のテーブルの作成

Timは0:35からコーディングを始めます。Tableオブジェクトを作成しています:

var table = new Table();

次に、AddColumnで3つの列を追加します:

table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");

これが基本的な構成です。 彼は、各列は後で独自の幅、整列、スタイルを持つことができると説明しています。

次に、AddRowで行を追加します。 Tim at 1:06によると、行を追加するには3つの方法がサポートされている:

1.IRenderableオブジェクトのparamsリスト(パネル、別のテーブル、あるいはチャートのようなネストされたアイテム用)。

2.文字列のparamsリスト(最も一般的なもの)。

3.IEnumerable<IRenderable>(あまり一般的ではありませんが、利用可能です)。

彼はまず2番目の選択肢を示し、こう付け加えた:

table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");

これで、テーブルに2行のデータが入ります。 3:26 で Tim は、ターミナルにテーブルのような IRenderable を表示するには、(WriteLine ではなく)AnsiConsole.Write(table) を使わなければならないことを視聴者に思い出させます:

AnsiConsole.Write(table);

彼がプログラムを実行すると、コンソールには、ヘッダーと行が自動的に整列された、きちんとフォーマットされた表が表示されます。 わずか数行のコードでも、Spectreはコンソール出力をよりプロフェッショナルに見せます。

テーブルの整列と展開

4:00では、Timが画面上のテーブルの位置をコントロールする方法を示しています。 例えば:

table.Centered();

これにより、コンソールウィンドウの中央に表全体が表示されます。 彼は、この設定は列ではなく、テーブル全体に影響すると説明しています。 表を右寄せまたは左寄せにすることもできます。 デフォルトは左です。

そして、5:01からtable.Expand()を実演し、テーブルをターミナル・ウィンドウの幅いっぱいにする。 いったん拡大すると、テーブルが利用可能なスペースをすべて使ってしまうため、センタリングは効果がありません。 デフォルトは折りたたまれたテーブルです。

境界線を追加してターミナル サポートを理解する

次に、Timは5:21に枠線を加える:

table.Border(TableBorder.Rounded);

彼はVisual Studioのコンソールでアプリを実行し、角が丸くなっていないことに気づきました。 5:54に、彼はWindowsターミナルに切り替えて再実行している。

レンダリング機能は使用している端末に依存するとティムは説明する(5:59)。 基礎となるシェルは出力を提供するだけですが、ターミナルはどのスタイルを表示できるかを決定します。 Windows ターミナルは丸囲み文字をサポートしています; Visual Studioの統合コンソールにはありません。 色、マークアップ、斜体、下線、太字などのスタイルも同様です。

彼は7:01で、Visual Studioの外のDeveloper Command Promptでさえ、別のターミナルを使用しているため正しくレンダリングされることを示している。 これは、Spectre の進行バー、長時間実行するタスク、またはテーブルのような機能を試している場合に重要なポイントです:すべてのターミナルがすべてのスタイルを表示できるわけではありません。

行区切り文字の追加

ティムはまた、行と行の間に区切り文字を表示することで、わかりやすくなると指摘しています:

table.ShowRowSeparators();

これにより、各行の間に水平線が引かれ、大きな表でも情報をスキャンしやすくなります。特に、多くの出力を表示したり、引数を動的に処理したりするCLIツールを構築している場合に便利です。

列レベルのスタイリング:パディング、幅、整列

Spectre.Consoleテーブルの強みは、各カラムを個別にカスタマイズできることです。 8:02、ティムは最初のコラムを修正する:

table.Columns[0].PadLeft(5).PadRight(5);

このため、テキストの両側にパディングが追加されます。 次に、2列目の幅を固定に設定します:

table.Columns[1].Width(15);

最後に、そのコラムの内容を右寄せにする:

table.Columns[1].RightAligned();

彼が9:10に再びプログラムを実行すると、1列目がパディングされ、2列目が固定幅に設定され、コンテンツが右寄せになっているのがわかる。 ヘッダーテキストでさえ、これらの設定を尊重しています。 Timは、幅はピクセルではなく、文字で測定されることを指摘している(8:42)。

パディング、アライメント、固定幅といった小さな工夫が、コンソール・アプリケーションをより読みやすくします。 Spectreの色、マークアップ、パネルと組み合わせることで、GUIに近く感じられながら、完全にコンソールで動作するアウトプットを作成できます。

IEnumerable<IRenderable>から行を追加する

9:25で、TimはIEnumerable<IRenderable>を渡して行を追加する3つ目の方法を示しています。 テキストオブジェクトのリストを作成:

var person = new List<Text>
{
    new Text("Bilbo"),
    new Text("Baggins"),
    new Text("111")
};

table.AddRow(person);

これは、コレクションを使用して別の行を挿入します。 Timは、このオプションは日常的なコードでは"あまり役に立たない"とコメントしているが、ファイルからのデータ、ユニットテストフレームワーク、対話型プロンプトなど、別のソースから動的に行を生成する場合はサポートされている。

まとめ

動画の最後(9:59)で、ティムはこうまとめています:Spectre.Console のテーブルは、情報をすっきりと構造化された方法で表示するための大きな力を与えてくれます。 テーブルの整列、幅、ボーダーのスタイルを制御し、行のセパレータを追加し、列にパディングを適用し、パネルやその他のレンダラブルを埋め込むこともできます。

ライブラリはモダンな CLI デザインに強くインスパイアされているため、テーブルだけでなく長時間実行のタスク用の進行インジケータ、チャート、太字、イタリック、下線、青や緑のテキストのような色のマークアップなど、多くのものをサポートしています。 Tim は、ドキュメントを確認し、例を試して、Spectre がコンソール出力をどのように魅力的にするかを確認するよう視聴者に勧めています。

ティム・コーリーのステップ・バイ・ステップのデモンストレーションに従うことで、Spectre.Console がいかに最小限の労力で美しいコンソール・アプリケーションを構築できるかがわかるでしょう。 NuGetパッケージをインストールし、APIを探索し、今すぐプレーンなコンソール出力を構造化され、スタイル化された表示に変換してください。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。