Uso de tablas en libros de trabajo para .NET

En el artículo anterior, vimos cómo acceder y modificar Celdas, Columnas y Filas. Esta vez veremos cómo añadir y modificar Tablas en una Hoja de Cálculo.

Más información Cuadernos Xeed para .NET

En el artículo anterior, vimos cómo acceder y modificar CélulasColumnas y Filas.

Esta vez vamos a ver cómo añadir y modificar Tablas en un Hoja de trabajo.

¿Qué es una mesa?

Cuadro representa un rango de celdas en un Hoja de trabajo. Para ser consideradas una Tabla, estas celdas deben ser independientes de las demás celdas de la Hoja de Cálculo y estar agrupadas para formar una disposición rectangular de filas y columnas. Se pueden utilizar estilos incorporados para unificar visualmente estas celdas agrupadas.

La fila de encabezado de la Tabla puede mostrar opciones de filtrado para cada columna. También se puede añadir una fila de totales, cada celda de esta fila mostrará una fórmula de cálculo basada en los datos de esa columna (Suma, Media, Recuento, etc.).

Rellenar los datos de la Tabla

Como ya se ha dicho, un Cuadro es un rango de celdas en un Hoja de trabajo, por lo que el primer paso es rellenar las celdas para conocer el rango que ocupará la Tabla.

Para rellenar los valores de las celdas, utilizamos lo que hemos aprendido en el artículo anterior. La primera fila contendrá nuestras cabeceras, mientras que el resto contendrá los datos.

// Set the Table's content
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];
		
		// Column 1 (B3:B7)
		worksheet.Rows[ 2 ].Cells[ 1 ].Value = "Employee";
		worksheet.Rows[ 3 ].Cells[ 1 ].Value = "Nancy Davolio";
		worksheet.Rows[ 4 ].Cells[ 1 ].Value = "Margaret Peacock";
		worksheet.Rows[ 5 ].Cells[ 1 ].Value = "Steven Buchanan";
		worksheet.Rows[ 6 ].Cells[ 1 ].Value = "Laura Callahan";

		// Column 2 (C3:C7)
		worksheet.Rows[ 2 ].Cells[ 2 ].Value = "Years of Experience";
		worksheet.Rows[ 3 ].Cells[ 2 ].Value = "12";
		worksheet.Rows[ 4 ].Cells[ 2 ].Value = "2";
		worksheet.Rows[ 5 ].Cells[ 2 ].Value = "9";
		worksheet.Rows[ 6 ].Cells[ 2 ].Value = "7";

		// Column 3 (D3:D7)
		worksheet.Rows[ 2 ].Cells[ 3 ].Value = "Salary";
		worksheet.Rows[ 3 ].Cells[ 3 ].Value = "75000";
		worksheet.Rows[ 4 ].Cells[ 3 ].Value = "41000";
		worksheet.Rows[ 5 ].Cells[ 3 ].Value = "64000";
		worksheet.Rows[ 6 ].Cells[ 3 ].Value = "55000";
		
		document.Save();
	}

Añadir una tabla

Las tablas se almacenan en un Colección de mesas disponible a través de la función Tablas propiedad en un Hoja de trabajo. Para añadir una Tabla, utilizamos la función Añadir que se encuentra en Colección de mesas. El método espera el nombre de la tabla (opcional), un rango de celdas (por direcciones de celdas o definidas por índices), el estilo de la tabla y si se muestra la fila de cabecera.

En Añadir admite 4 sobrecargas:

  • (String, String, TableStyle, Boolean): the range of cells is defined by cell addresses.
  • (String, String, String, TableStyle, Boolean): the table name is specified, and the range of cells is defined by cell addresses.
  • (Int32, Int32, Int32, Int32, TableStyle, Boolean): the range of cells is defined by indexes.
  • (String, Int32, Int32, Int32, Int32, TableStyle, Boolean): the table name is specified, and the range of cells is defined by indexes.
// Add a Table from cell B3 to cell F7
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];

		// Overload 1: Using addresses, the table name is not specified
		worksheet.Tables.Add( "B3", "F7", TableStyle.TableStyleMedium20, true);

		// Overload 2: Using addresses, the table name is specified
		worksheet.Tables.Add( "Results", "B3", "F7", TableStyle.TableStyleMedium20, true);

		// Overload 3: Using indexes, the table name is not specified
		worksheet.Tables.Add( 2, 1, 6, 5, TableStyle.TableStyleMedium20, true);

		// Overload 4: Using indexes, the table name is specified
		worksheet.Tables.Add( "Results", 2, 1, 6, 5, TableStyle.TableStyleMedium20, true);

		document.Save();
	}

Note:

  • If the range of cells is defined by indexes, the sequence is startRowId, startColumnId, endRowId, endColumnId, and the indexes each start at 0. For example, the cell at the address "A1" would be at the indexes (0, 0).

Acceso y modificación de una tabla

Podemos acceder a una tabla existente, como la que acabamos de añadir, directamente desde la función Colección de mesas en el Hoja de trabajo. Podemos especificar el índice de la tabla en la colección o su nombre.

// Fetching a specific Table
	var firstTable = worksheet.Tables[ 0 ];
	var myTable = worksheet.Tables[ "Results" ];

Ahora que ya tenemos la tabla, podemos personalizar algunas de sus propiedades.
La lista de propiedades disponibles en el Cuadro está disponible en la documentación aquí.

// Modifying a Table's properties
	var myTable = worksheet.Tables[ 0 ];
	myTable.AutoFilter.ShowFilterButton = false;
	myTable.ShowFirstColumnFormatting = true;
	myTable.ShowBandedRows = true;

También podemos realizar modificaciones en las columnas individuales de un archivo Cuadroa la que se puede acceder a través de la tabla Columnas propiedad.
La lista de propiedades disponibles en el TablaColumna está disponible en la documentación aquí.

// Modifying a Columns's properties
	var myTable = worksheet.Tables[ 0 ];
	myTable.Columns[ "Fruits" ].TotalRowLabel = "TOTAL:";
	myTable.Columns[ "Quantity" ].TotalRowFunction = TotalRowFunction.Sum;

Para más información, consulte el documentación.