Ajouter des tableaux à votre console - Spectre Console Series
Spectre.Console est une puissante bibliothèque .NET qui vous aide à créer de superbes applications de console. Au lieu d'une sortie en texte brut, vous pouvez créer des mises en page structurées, utiliser des couleurs et même afficher des barres de progression ou des invites interactives. Dans sa série Spectre Console, Tim Corey montre aux développeurs comment tirer le meilleur parti de cette bibliothèque dans de petites leçons pratiques.
Dans sa vidéo, "Adding Tables to Your Console - Spectre Console Series", Tim se concentre sur les tables Spectre.Console. Les tableaux sont une fonctionnalité essentielle qui vous permet d'afficher des données structurées avec un alignement, un remplissage, des bordures et des styles. Nous allons examiner plus en détail la présentation de Tim afin que vous puissiez voir exactement comment utiliser cette fonctionnalité.
Démarrer avec Spectre.Console
Au début (0:00), Tim explique que Spectre.Console vous permet de créer des applications visuellement attrayantes et informatives. Elle est distribuée sous la forme d'un package NuGet nommé Spectre.Console. Vous pouvez l'installer facilement avec :
// dotnet add package spectre console
dotnet add package Spectre.Console
// dotnet add package spectre console
dotnet add package Spectre.Console
Une fois installée, la bibliothèque facilite grandement la présentation des informations dans une application console. Tim indique également les liens vers la documentation et le code source fournis avec la vidéo pour toute personne intéressée par d'autres exemples.
Créer votre premier tableau
Tim commence à coder à 0:35. Il crée un objet Table :
var table = new Table();
var table = new Table();
Il ajoute ensuite trois colonnes avec AddColumn :
table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");
table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");
Ceci crée la structure de base. Il explique que chaque colonne peut ensuite avoir sa propre largeur, son propre alignement et son propre style.
Ensuite, il ajoute des lignes avec AddRow. Tim à 1:06 dit qu'il y a trois façons d'ajouter des lignes :
-
Une liste params d'objets IRenderable (pour les éléments imbriqués tels qu'un panneau, un autre tableau ou même des graphiques).
-
Une liste de chaînes de caractères params (les plus courantes).
- Un IEnumerable
(moins courant mais disponible).
Il présente d'abord la deuxième option, en ajoutant :
table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");
table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");
Deux lignes de données sont ainsi ajoutées au tableau. À 3:26, Tim rappelle aux spectateurs qu'il faut utiliser AnsiConsole.Write(table) (et non WriteLine) pour afficher un IRenderable comme un tableau dans le terminal :
AnsiConsole.Write(table);
AnsiConsole.Write(table);
Lorsqu'il exécute le programme, la console affiche un tableau soigneusement formaté dont les en-têtes et les lignes sont alignés automatiquement. Même avec seulement quelques lignes de code, Spectre donne à la sortie de la console un aspect beaucoup plus professionnel.

Alignement et développement du tableau
À 4:00, Tim montre comment contrôler la position de la table à l'écran. Par exemple :
table.Centered();
table.Centered();
Cela affichera l'ensemble du tableau au centre de la fenêtre de la console. Il explique que ce paramètre affecte le tableau dans son ensemble, et non les colonnes. Vous pouvez également aligner le tableau à droite ou à gauche. La valeur par défaut est la gauche.

Il démontre ensuite table.Expand() à 5:01, qui permet au tableau de remplir toute la largeur de la fenêtre du terminal. Une fois développé, le centrage n'a plus d'effet car le tableau occupe désormais tout l'espace disponible. Par défaut, le tableau est réduit.

Ajouter des frontières et comprendre la prise en charge des terminaux
Ensuite, Tim ajoute une bordure à 5:21 :
table.Border(TableBorder.Rounded);
table.Border(TableBorder.Rounded);
Il exécute l'application dans la console de Visual Studio et remarque que les coins ne sont pas arrondis. À 5:54, il passe au terminal Windows et le réexécute - les coins arrondis apparaissent maintenant.
Tim explique (5:59) que les capacités de rendu dépendent du terminal utilisé. L'interpréteur de commandes sous-jacent fournit simplement la sortie, mais c'est le terminal qui décide des styles qu'il peut afficher. Le terminal Windows prend en charge les caractères à bordure arrondie ; La console intégrée de Visual Studio ne le fait pas. Il en va de même pour les couleurs, le balisage ou tout style de texte italique, souligné ou gras que vous pourriez ajouter.
Il montre à 7:01 que même l'invite de commande du développeur en dehors de Visual Studio a un rendu correct parce qu'elle utilise un terminal différent. Il s'agit d'un point important à garder à l'esprit si vous essayez des fonctionnalités de Spectre telles que les barres de progression, les tâches de longue durée ou les tableaux : tous les terminaux ne sont pas en mesure d'afficher tous les styles.
Ajouter des séparateurs de ligne
Tim souligne également qu'il est possible d'afficher des séparateurs entre les lignes pour plus de clarté :
table.ShowRowSeparators();
table.ShowRowSeparators();
Cela permet de tracer une ligne horizontale entre chaque ligne, ce qui facilite la lecture des informations dans les grands tableaux, en particulier lorsque vous créez des outils CLI qui affichent de nombreux résultats ou gèrent les arguments de manière dynamique.
Mise en forme au niveau des colonnes : Remplissage, largeur, alignement
L'un des points forts des tableaux Spectre.Console est la possibilité de personnaliser chaque colonne individuellement. À 8:02, Tim modifie la première colonne :
table.Columns[0].PadLeft(5).PadRight(5);
table.Columns[0].PadLeft(5).PadRight(5);
Ce texte ajoute un remplissage de part et d'autre du texte. Il définit ensuite une largeur fixe pour la deuxième colonne :
table.Columns[1].Width(15);
table.Columns[1].Width(15);
Enfin, il aligne le contenu de cette colonne à droite :
table.Columns[1].RightAligned();
table.Columns[1].RightAligned();
Lorsqu'il exécute à nouveau le programme à 9:10, vous pouvez voir que la première colonne est remplie, que la deuxième colonne a une largeur fixe et que le contenu est aligné à droite. Même le texte d'en-tête respecte ces paramètres. Tim note (8:42) que les largeurs sont mesurées en caractères et non en pixels.
Ces petites touches - remplissage, alignement et largeurs fixes - rendent vos applications de console beaucoup plus lisibles. Combiné aux couleurs, au balisage et aux panneaux de Spectre, vous pouvez créer un résultat qui se rapproche d'une interface graphique mais qui s'exécute entièrement dans une console.

Ajouter des lignes à partir de IEnumerable
À 9:25, Tim démontre la troisième façon d'ajouter une ligne - en passant un IEnumerable
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);
Ceci insère une autre ligne en utilisant une collection. Tim explique que cette option n'est "pas terriblement utile" dans le code quotidien, mais qu'elle est prise en charge si vous générez des lignes dynamiquement à partir d'une autre source, comme des données provenant d'un fichier, d'un cadre de test unitaire ou d'un message d'invite interactif.

Conclusion
À la fin de la vidéo (9:59), Tim résume : Les tableaux de Spectre.Console vous permettent de présenter les informations de manière claire et structurée. Vous pouvez contrôler l'alignement, la largeur et le style des bordures du tableau, ajouter des séparateurs de lignes, appliquer un rembourrage aux colonnes et même intégrer des panneaux ou d'autres éléments à rendre.
La bibliothèque étant fortement inspirée par la conception moderne des CLI, elle prend en charge non seulement les tableaux, mais aussi les indicateurs de progression pour les tâches de longue durée, les graphiques, le balisage pour le gras, l'italique, le soulignement et les couleurs (comme le texte bleu ou vert), et bien d'autres choses encore. Tim encourage les spectateurs à consulter la documentation et à essayer les exemples pour voir comment Spectre peut rendre la sortie de votre console plus attrayante.
En suivant la démonstration pas à pas de Tim Corey, vous verrez comment Spectre.Console vous permet de créer de superbes applications de console avec un minimum d'efforts. Installez le package NuGet, explorez l'API et commencez dès aujourd'hui à transformer votre sortie de console ordinaire en affichages structurés et stylisés.
