Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Cómo añadir tablas a la consola - Spectre Console Series

Tim Corey
10m 24s

Spectre.Console es una potente biblioteca .NET que le ayuda a crear hermosas aplicaciones de consola. En lugar de texto sin formato, puedes crear diseños estructurados, utilizar colores e incluso mostrar barras de progreso o mensajes interactivos. En su serie Spectre Console, Tim Corey muestra a los desarrolladores cómo sacar el máximo partido a esta biblioteca en pequeñas lecciones prácticas.

En su vídeo, "Adding Tables to Your Console - Spectre Console Series", Tim se centra en las tablas de Spectre.Console. Las tablas son una función básica que permite mostrar datos estructurados con alineación, relleno, bordes y estilos. Profundizaremos en el tutorial de Tim para que sepas exactamente cómo utilizar esta función.

Cómo empezar con Spectre.Console

Al principio (0:00), Tim explica que Spectre.Console permite crear aplicaciones visualmente atractivas e informativas. Se distribuye como un paquete NuGet llamado Spectre.Console. Puede instalarlo fácilmente con:

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

Una vez instalada, la biblioteca facilita enormemente la presentación de la información en una aplicación de consola. Tim también señala los enlaces a la documentación y al código fuente que se proporcionan con el vídeo para cualquier persona interesada en más ejemplos.

Creación de la primera tabla

Tim empieza a codificar en el minuto 0:35. Crea un objeto Table:

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

A continuación, añade tres columnas con AddColumn:

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

Esto crea la estructura básica. Explica que, posteriormente, cada columna puede tener su propia anchura, alineación y estilo.

A continuación, añade filas con AddRow. Tim en 1:06 dice que hay tres formas de añadir filas:

  1. Una lista params de objetos IRenderable (para elementos anidados como un panel, otra tabla o incluso gráficos).

  2. Una lista params de cadenas (las más comunes).

  3. Un IEnumerable (menos común pero disponible).

Demuestra primero la segunda opción, añadiendo:

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

Esto introduce dos filas de datos en la tabla. En 3:26 Tim recuerda a los espectadores que debes usar AnsiConsole.Write(table) (no WriteLine) para mostrar un IRenderable como una tabla en la terminal:

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

Cuando se ejecuta el programa, la consola muestra una tabla perfectamente formateada con las cabeceras y las filas alineadas automáticamente. Incluso con solo unas pocas líneas de código, Spectre hace que la salida de la consola parezca mucho más profesional.

Spectre Console Adding Tables 1 related to Creación de la primera tabla

Alineación y ampliación de la tabla

En el minuto 4:00, Tim muestra cómo controlar la posición de la tabla en la pantalla. Por ejemplo:

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

Esto mostrará toda la tabla en el centro de la ventana de la consola. Explica que este ajuste afecta a la tabla en su conjunto, no a las columnas. También puede alinear la tabla a la derecha o a la izquierda. Por defecto es izquierda.

Spectre Console Adding Tables 2 related to Alineación y ampliación de la tabla

A continuación, muestra table.Expand() en el minuto 5:01, que hace que la tabla ocupe todo el ancho de la ventana del terminal. Una vez ampliada, el centrado no tiene ningún efecto porque la tabla ocupa ahora todo el espacio disponible. Por defecto, se trata de una tabla contraída.

Spectre Console Adding Tables 3 related to Alineación y ampliación de la tabla

Añadir bordes y comprender el soporte de terminales

A continuación, Tim añade un borde en el minuto 5:21:

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

Ejecuta la aplicación en la consola de Visual Studio y se da cuenta de que las esquinas no están redondeadas. A las 5:54, cambia al Terminal de Windows y vuelve a ejecutarlo: ahora aparecen las esquinas redondeadas.

Tim explica (5:59) que las capacidades de representación dependen del terminal que se utilice. El shell subyacente sólo proporciona la salida, pero el terminal decide qué estilos puede mostrar. Windows Terminal admite los caracteres de borde redondeado; La consola integrada de Visual Studio no lo hace. Lo mismo se aplica a los colores, el marcado o cualquier estilo de texto en cursiva, subrayado o negrita que pueda añadir.

En el minuto 7:01 muestra que incluso el símbolo del sistema para desarrolladores fuera de Visual Studio se muestra correctamente porque utiliza un terminal diferente. Este es un punto importante a tener en cuenta si estás probando funciones de Spectre como barras de progreso, tareas de larga duración o tablas: no todos los terminales pueden mostrar todos los estilos.

Añadir separadores de filas

Tim también señala que se pueden mostrar separadores entre filas para mayor claridad:

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

Esto dibuja una línea horizontal entre cada fila, lo que puede hacer que la información sea más fácil de escanear en tablas más grandes, especialmente cuando se construyen herramientas CLI que muestran mucha salida o manejan argumentos de forma dinámica.

Estilización a nivel de columna: Relleno, anchura, alineación

Uno de los puntos fuertes de las tablas de Spectre.Console es la posibilidad de personalizar cada columna individualmente. A las 8:02, Tim modifica la primera columna:

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

Se añade relleno a ambos lados del texto. A continuación, establece un ancho fijo en la segunda columna:

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

Por último, alinea a la derecha el contenido de esa columna:

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

Cuando vuelve a ejecutar el programa a las 9:10, se puede ver la primera columna rellenada, la segunda columna con una anchura fija y el contenido alineado a la derecha. Incluso el texto de cabecera respeta estos parámetros. Tim señala (8:42) que las anchuras se miden en caracteres, no en píxeles.

Estos pequeños detalles (relleno, alineación y anchura fija) hacen que las aplicaciones de consola sean mucho más legibles. En combinación con los colores, el marcado y los paneles de Spectre, puede crear resultados que se asemejen más a una interfaz gráfica de usuario, pero que se ejecuten íntegramente en una consola.

Spectre Console Adding Tables 4 related to Estilización a nivel de columna: Relleno, anchura, alineación

Añadir filas desde IEnumerable

A las 9:25 Tim demuestra la tercera forma de añadir una fila - pasando un IEnumerable. Prepara una lista de objetos de texto:

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);

Esto inserta otra fila utilizando una colección. Tim comenta que esta opción "no es terriblemente útil" en el código cotidiano, pero es compatible si se generan filas dinámicamente a partir de otra fuente, como los datos de un archivo, un marco de pruebas unitarias o un indicador interactivo.

Spectre Console Adding Tables 5 related to Añadir filas desde IEnumerable

Resumen

Al final del vídeo (9:59), Tim resume: Las tablas de Spectre.Console te dan mucho poder para presentar información de forma ordenada y estructurada. Puede controlar la alineación, la anchura y el estilo del borde de la tabla, añadir separadores de filas, aplicar relleno a las columnas e incluso incrustar paneles u otros elementos renderizables.

Dado que la biblioteca se inspira en gran medida en el diseño moderno de CLI, no solo admite tablas, sino también indicadores de progreso para tareas de larga duración, gráficos, marcas para negrita, cursiva, subrayado y colores (como texto azul o verde), y mucho más. Tim anima a los espectadores a consultar la documentación y probar los ejemplos para ver cómo Spectre puede hacer más atractiva la salida de su consola.

Siguiendo la demostración paso a paso de Tim Corey, verás cómo Spectre.Console te permite crear hermosas aplicaciones de consola con el mínimo esfuerzo. Instale el paquete NuGet, explore la API y empiece hoy mismo a transformar la simple salida de la consola en visualizaciones estructuradas y con estilo.

Hero Worlddot related to Cómo añadir tablas a la consola - Spectre Console Series
Hero Affiliate related to Cómo añadir tablas a la consola - Spectre Console Series

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame