Web Components que utilizan tablas

    La funcionalidad WorksheetTable de Infragistics Web Components Excel Engine le permite formatear sus datos en filas y columnas. Los datos en una tabla de hoja de trabajo se pueden administrar independientemente de los datos en las otras filas y columnas de una worksheet.

    Adding a Table to a Worksheet

    Las tablas de hojas de trabajo en Excel Engine Web Components Infragistics están representadas por el objeto WorksheetTable y se agregan a la colección tables de la hoja de trabajo. Para agregar una tabla, debe invocar el método Add en esta colección. En este método, puede especificar la región en la que desea agregar una tabla, si la tabla debe contener encabezados o no y, opcionalmente, especificar el estilo de la tabla como un objeto WorksheetTableStyle.

    El siguiente código demuestra cómo puede agregar una tabla con encabezados a una worksheet que abarca una región de A1 a G10, donde A1 a G1 serán los encabezados de columna:

    var workbook = new Workbook(WorkbookFormat.Excel2007);
    var worksheet = this.workbook.worksheets().add("Sheet1");
    
    worksheet.tables().add("A1:G10", true);
    

    Una vez que haya agregado una tabla, puede modificarla agregando o eliminando filas y columnas llamando a los métodos insertColumns, insertDataRows, deleteColumns o deleteDataRows en WorksheetTable. También puede establecer un nuevo rango de tabla utilizando el método resize de la tabla.

    El siguiente fragmento de código muestra el uso de estos métodos:

    var workbook = new Workbook(WorkbookFormat.Excel2007);
    var worksheet = workbook.worksheets().add("Sheet1");
    var table = worksheet.tables().add("A1:G10", true);
    
    //Will add 5 columns at index 1.
    table.insertColumns(1, 5);
    
    //Will add 5 rows at index 0.
    table.insertDataRows(0, 5);
    
    //Will delete 5 columns starting at index 1.
    table.deleteColumns(1, 5);
    
    //Will delete 5 rows starting at index 0.
    table.deleteDataRows(0, 5);
    
    //Will resize the table to be in the region of A1:G15.
    table.resize("A1:G15");
    

    Filtering Tables

    El filtrado se realiza aplicando un filtro en una columna de WorksheetTable. Cuando el filtro se aplica en una columna, todos los filtros de la tabla se reevaluarán para determinar qué filas cumplen con los criterios de todos los filtros aplicados.

    Si los datos de la tabla se modifican posteriormente o cambia la propiedad Hidden de las filas, las condiciones del filtro no se reevaluarán automáticamente. Las condiciones de filtro en una tabla solo se vuelven a aplicar cuando se agregan, eliminan, modifican filtros de columnas de la tabla o cuando se llama al método reapplyFilters en la tabla.

    Los siguientes son los tipos de filtro disponibles para las columnas de su WorksheetTable:

    • AverageFilter: las celdas se pueden filtrar en función de si están por encima o por debajo del valor promedio de todas las celdas de la columna.
    • CustomFilter: las celdas se pueden filtrar según una o más condiciones personalizadas.
    • DatePeriodFilter: solo se mostrarán celdas con fechas en un mes o trimestre específico de cualquier año.
    • FillFilter: solo se mostrarán las celdas con un relleno específico.
    • FixedValuesFilter: se mostrarán las celdas que solo coincidan con valores de visualización específicos o que se encuentren dentro de un grupo específico de fechas/horas.
    • FontColorFilter: solo se mostrarán las celdas con un color de fuente específico.
    • RelativeDateRangeFilter: las celdas con valores de fecha se pueden filtrar en función de si ocurren dentro de un rango de tiempo relativo de la fecha en la que se aplicó el filtro, como el día siguiente o el trimestre anterior.
    • TopOrBottomFilter: este filtro permite filtrar los N valores superiores o inferiores. También permite filtrar los valores N% superiores o inferiores.
    • YearToDateFilter: las celdas con valores de fecha se pueden filtrar si ocurren entre el inicio del año y la fecha en la que se aplicó el filtro.

    El siguiente fragmento de código demuestra cómo aplicar un filtro "por encima del promedio" a la primera columna de una WorksheetTable:

    var workbook = new Workbook(WorkbookFormat.Excel2007);
    var worksheet = workbook.worksheets().add("Sheet1");
    var table = worksheet.tables().add("A1:G10", true);
    
    table.columns(0).applyAverageFilter(AverageFilterType.AboveAverage);
    

    Sorting Tables

    La clasificación se realiza estableciendo una condición de clasificación en una columna de la tabla. Cuando se establece una condición de clasificación en una columna, todas las condiciones de clasificación de la tabla se reevaluarán para determinar el orden de las celdas de la tabla. Cuando es necesario mover celdas para cumplir con sus criterios de clasificación, toda la fila de celdas de la tabla se mueve como una unidad.

    Si los datos de la tabla se modifican posteriormente, las condiciones de clasificación no se reevalúan automáticamente. Las condiciones de clasificación en una tabla solo se vuelven a aplicar cuando se agregan, eliminan, modifican condiciones de clasificación o cuando se llama al método reapplySortConditions en la tabla. Cuando se reevalúan las condiciones de clasificación, solo se clasifican las celdas visibles. Todas las celdas de las filas ocultas se mantienen en su lugar.

    Además de acceder a las condiciones de clasificación desde las columnas de la tabla, también se exponen en la colección sortConditions de la propiedad sortSettings de WorksheetTable. Esta es una colección ordenada de columnas/pares de condiciones de clasificación. El orden de esta colección es la precedencia de la clasificación.

    Los siguientes tipos de condiciones de clasificación están disponibles para establecer en columnas:

    • OrderedSortCondition: ordena las celdas en orden ascendente o descendente según su valor.
    • CustomListSortCondition: ordena las celdas en un orden definido según su texto o valor de visualización. Por ejemplo, esto podría resultar útil para ordenar los días tal como aparecen en un calendario, en lugar de hacerlo alfabéticamente.
    • FillSortCondition: ordena las celdas en función de si su relleno es un patrón o degradado específico.
    • FontColorSortCondition: ordena las celdas según si su fuente es de un color específico.

    También hay una propiedad caseSensitive en sortSettings de WorksheetTable para determinar si las cadenas deben ordenarse distinguiendo entre mayúsculas y minúsculas o no.

    El siguiente fragmento de código demuestra cómo aplicar una OrderedSortCondition a una WorksheetTable:

    var workbook = new Workbook(WorkbookFormat.Excel2007);
    var worksheet = this.workbook.worksheets().add("Sheet1");
    var table = worksheet.tables().add("A1:G10", true);
    
    table.columns(0).sortCondition = new OrderedSortCondition(SortDirection.Ascending);
    
    //Alternative:
    table.sortSettings.sortConditions().addItem(table.columns(0), new OrderedSortCondition(SortDirection.Ascending));
    

    API References