Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Dodawanie tabel do konsoli - seria Spectre Console

Tim Corey
10m 24s

Spectre.Console to potężna biblioteka .NET, która pomaga tworzyć piękne aplikacje konsolowe. Zamiast wyjścia tekstowego, możesz budować uporządkowane układy, używać kolorów, a nawet wyświetlać paski postępu lub interaktywne monity. W swojej serii Spectre Console, Tim Corey pokazuje programistom, jak w pełni wykorzystać tę bibliotekę w małych, praktycznych lekcjach.

W swoim wideo, "Dodawanie Tabel do Konsoli - Seria Spectre Console", Tim skupia się na tabelach Spectre.Console. Tabele to podstawowa funkcja, która pozwala wyświetlić uporządkowane dane z wyrównaniem, odstępami, obramowaniem i stylami. Spojrzmy dokładniej na przeprowadzenie Tima, abyś mógł zobaczyć, jak dokładnie korzystać z tej funkcji.

Rozpoczęcie pracy z Spectre.Console

Na początku (0:00), Tim wyjaśnia, że Spectre.Console pozwala tworzyć wizualnie atrakcyjne i informacyjne aplikacje. Jest dystrybuowane jako pakiet NuGet nazwany Spectre.Console. Można go łatwo zainstalować za pomocą:

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

Po zainstalowaniu biblioteka znacznie ułatwia prezentację informacji w aplikacji konsolowej. Tim wskazuje także na dokumentację i linki do kodu źródłowego dołączone do wideo dla zainteresowanych dalszymi przykładami.

Tworzenie Twojej Pierwszej Tabeli

Tim zaczyna kodowanie od 0:35. Tworzy obiekt Table:

var table = new Table();
var table = new Table();

Następnie dodaje trzy kolumny z AddColumn:

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

To tworzy podstawową strukturę. Wyjaśnia, że każda kolumna może później mieć swoją własną szerokość, wyrównanie i styl.

Następnie dodaje wiersze z AddRow. Tim o 1:06 mówi, że są trzy wspierane sposoby dodawania wierszy:

  1. Lista params obiektów IRenderable (dla zagnieżdżonych elementów jak panel, inna tabela lub nawet wykresy).

  2. Lista params ciągów znaków (najczęściej spotykana).

  3. IEnumerable (rzadziej spotykane, ale dostępne).

Najpierw demonstruje drugą opcję, dodając:

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

To umieszcza dwa wiersze danych w tabeli. O 3:26 Tim przypomina widzom, że musisz użyć AnsiConsole.Write(table) (nie WriteLine), aby wyświetlić IRenderable takie jak tabela w terminalu:

AnsiConsole.Write(table);
AnsiConsole.Write(table);

Kiedy uruchamia program, konsola wyświetla ładnie sformatowaną tabelę z automatycznym wyrównaniem nagłówków i wierszy. Nawet przy tylko kilku liniach kodu, Spectre sprawia, że wyjście konsoli wygląda znacznie bardziej profesjonalnie.

Spectre Console Adding Tables 1 related to Tworzenie Twojej Pierwszej Tabeli

Wyrównywanie i Rozszerzanie Tabeli

O 4:00 Tim pokazuje, jak kontrolować pozycję tabeli na ekranie. Na przykład:

table.Centered();
table.Centered();

To wyświetli całą tabelę na środku okna konsoli. Wyjaśnia, że to ustawienie wpływa na tabelę jako całość, a nie na kolumny. Możesz także wyrównać tabelę do prawej lub lewej. Domyślnym ustawieniem jest lewo.

Spectre Console Adding Tables 2 related to Wyrównywanie i Rozszerzanie Tabeli

Następnie demonstruje table.Expand() o 5:01, które powoduje, że tabela wypełnia całą szerokość okna terminala. Po rozszerzeniu, centrowanie nie ma wpływu, ponieważ tabela teraz zajmuje całą dostępną przestrzeń. Domyślną opcją jest złożona tabela.

Spectre Console Adding Tables 3 related to Wyrównywanie i Rozszerzanie Tabeli

Dodawanie Obramowań i Zrozumienie Wsparcia Terminala

Następnie Tim dodaje obramowanie o 5:21:

table.Border(TableBorder.Rounded);
table.Border(TableBorder.Rounded);

Uruchamia aplikację wewnątrz konsoli Visual Studio i zauważa, że rogi nie są zaokrąglone. O 5:54 przełącza się na Windows Terminal i ponownie uruchamia — teraz pojawiają się zaokrąglone rogi.

Tim wyjaśnia (5:59), że możliwości renderowania zależą od terminala, którego używasz. Podstawowa powłoka tylko dostarcza wyjście, ale to terminal decyduje, które style może pokazać. Windows Terminal obsługuje zaokrąglone znaki obramowania; Zintegrowana konsola Visual Studio tego nie robi. To samo dotyczy kolorów, znaczników lub jakichkolwiek stylów tekstu z kursywą, podkreśleniem lub pogrubieniem, które możesz dodać.

O 7:01 pokazuje, że nawet Developer Command Prompt poza Visual Studio renderuje poprawnie, ponieważ używa innego terminala. To ważna kwestia do zapamiętania, jeśli próbujesz funkcji Spectre, takich jak paski postępu, długie zadania czy tabele: nie wszystkie terminale mogą wyświetlać każdy styl.

Dodawanie Separatorów Wierszy

Tim również wskazuje, że można pokazać separatorki między wierszami dla jasności:

table.ShowRowSeparators();
table.ShowRowSeparators();

To rysuje poziomą linię między każdym wierszem, co może ułatwić przeglądanie informacji w większych tabelach — zwłaszcza gdy budujesz narzędzia CLI, które wyświetlają dużo wyjścia lub dynamicznie obsługują argumenty.

Stylizacja na Poziomie Kolumny: Odstępy, Szerokość, Wyrównanie

Jedną z zalet tabel Spectre.Console jest to, jak wiele można dostosować każdą kolumnę indywidualnie. O 8:02 Tim modyfikuje pierwszą kolumnę:

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

To dodaje odstępy po obu stronach tekstu. Następnie ustawia stałą szerokość na drugiej kolumnie:

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

Na końcu wyrównuje zawartość tej kolumny do prawej:

table.Columns[1].RightAligned();
table.Columns[1].RightAligned();

Kiedy ponownie uruchamia program o 9:10, można zobaczyć pierwszą kolumnę z odstępem, drugą kolumnę o stałej szerokości, a zawartość wyrównaną do prawej. Nawet tekst nagłówka szanuje te ustawienia. Tim zauważa (8:42), że szerokości są mierzone w znakach, nie w pikselach.

Te drobne zmiany — odstępy, wyrównanie i stałe szerokości — sprawiają, że aplikacje konsolowe są znacznie bardziej czytelne. Połączone z kolorami, znacznikami i panelami Spectre, można tworzyć wyjścia, które przypominają GUI, ale działają całkowicie w konsoli.

Spectre Console Adding Tables 4 related to Stylizacja na Poziomie Kolumny: Odstępy, Szerokość, Wyrównanie

Dodawanie Wierszy z IEnumerable

O 9:25 Tim demonstruje trzeci sposób dodania wiersza — przekazując IEnumerable. Przygotowuje listę obiektów Text:

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

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

table.AddRow(person);

To wstawia inny wiersz przy użyciu kolekcji. Tim komentuje, że ta opcja jest "niezbyt użyteczna" w codziennym kodzie, ale jest wspierana, jeśli generujesz wiersze dynamicznie z innego źródła, takiego jak dane z pliku, framework testów jednostkowych czy interaktywny monit.

Spectre Console Adding Tables 5 related to Dodawanie Wierszy z IEnumerable

Podsumowanie

Na końcu wideo (9:59) Tim podsumowuje: Tabele Spectre.Console dają ogromne możliwości prezentacji informacji w przejrzysty i uporządkowany sposób. Możesz kontrolować wyrównanie, szerokość i styl obramowania tabeli, dodawać separatorki wierszy, stosować odstępy do kolumn, a nawet osadzać panele czy inne elementy renderowane.

Ponieważ biblioteka jest silnie inspirowana nowoczesnym projektem CLI, wspiera nie tylko tabele, ale także wskaźniki postępu dla długich zadań, wykresy, znacznik do pogrubienia, kursywy, podkreślenia i kolorów (jak niebieski czy zielony tekst), i wiele więcej. Tim zachęca widzów do sprawdzenia dokumentacji i wypróbowania przykładów, aby zobaczyć, jak Spectre może uczynić twoje wyjście konsolowe bardziej angażującym.

Podążając za krok po kroku demonstracją Tima Corey'a, zobaczysz, jak Spectre.Console umożliwia tworzenie pięknych aplikacji konsolowych z minimalnym wysiłkiem. Zainstaluj pakiet NuGet, zbadaj API i zacznij przekształcać swoje surowe wyjścia konsolowe w uporządkowane, stylizowane wyświetłącze już dziś.

Hero Worlddot related to Dodawanie tabel do konsoli - seria Spectre Console
Hero Affiliate related to Dodawanie tabel do konsoli - seria Spectre Console

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie