IRONSOFTWAREHOME

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

Añadir tablas a la consola - Serie de consolas Spectre

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

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

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

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<IRenderable> (menos común pero disponible).

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

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

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.

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

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.

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.

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

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 características de Spectre como barras de progreso, tareas de larga duración o tablas: no todos los terminales pueden mostrar cada estilo.

Añadir separadores de filas

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

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

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

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

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.

Añadir filas desde IEnumerable<IRenderable>

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

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.

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.

Debido a que la biblioteca está fuertemente inspirada 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 de resaltado en 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.

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

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta