Trabajar con tablas
Trabajar con tablas
Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Puedes crear nuevas tablas de las ramas de células, inspeccionar tablas existentes, configurar los header y las líneas totales, aplicar estilos de mesa integrados, acceso a las columnas individuales, y convertir las tablas de vuelta a rango normal. El punto de entrada es ListObjectCollection,Acceso a través de Worksheet.getListObjects().
Visión general
Las tablas en una hoja de trabajo se manejan a través del ListObjectCollection devuelto por Worksheet.getListObjects().Cada uno ListObject Se trata de una tabla Excel y exponer su nombre de pantalla, comentario, límites de gama celular, colección de columnas, estilo configuraciones, y el título/total de la línea de visibilidad.
Se crea una nueva mesa con ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), que devolve el índice basado en cero del tabla recién creado. El sobrecargo acepta las líneas de nombre celular: ListObjectCollection.add(startCellName, endCellName, hasHeaders).
Clases clave
| clase | Descripción |
|---|---|
ListObject | Representa una tabla de Excel. Expuestas getDisplayName(), getComment(), las coordenadas de rango, la colección de columnas, el tipo de estilo y la visibilidad del encabezado/total. |
ListObjectCollection | Colección de todas las tablas en una hoja de trabajo.Suport getCount(),Indicados y denominados por la get(), add(), remove(),y los asistentes de conversión de estilo. |
ListColumn | Representa una columna dentro de un tablo. Exponer la identificación de la coluna, el nombre y las configuraciones de cálculo total-rojo. |
ListColumnCollection | Colección ordenada de columnas en una tabla. Iterable con número y acceso al índice. |
TableStyleType | Enum que identifica un estilo de tabla en Excel integrado (Light 1–21, Medium 1 – 28, Dark 1-11 o Custom/None). |
TotalsCalculation | Enum para la función de agregado en la línea total de una tabla (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, CONTA_NUMES, CUSTOM, NONE). |
Acceso a tablas en una hoja de trabajo
Recuperar el ListObjectCollection de cualquier Worksheet por vía Worksheet.getListObjects().Uso de ListObjectCollection.getCount() Para determinar cuántas tablas existen. las tabelas individuales se acceden por índice basado en cero a través de la ListObjectCollection.get(index) o por nombre de muestra a través del ListObjectCollection.get(name).
Workbook wb = new Workbook("input.xlsx");
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);
ListObjectCollection tables = ws.getListObjects();
for (int i = 0; i < tables.getCount(); i++) {
ListObject table = tables.get(i);
System.out.println("Table: " + table.getDisplayName()
+ " rows: " + table.getStartRow() + "-" + table.getEndRow());
}Crear una nueva mesa
Uso ListObjectCollection.add() para insertar una tabla sobre un rango de células. el hasHeaders El parámetro indica si la primera línea del rango contiene Capítulos de columna.
Workbook wb = new Workbook();
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);
// Populate data
ws.getCells().get("A1").putValue("Product");
ws.getCells().get("B1").putValue("Quantity");
ws.getCells().get("A2").putValue("Widget");
ws.getCells().get("B2").putValue(100);
// Create table over A1:B2 with headers in row 0
int tableIndex = ws.getListObjects().add(0, 0, 1, 1, true);
ListObject table = ws.getListObjects().get(tableIndex);
table.setDisplayName("SalesTable");Inspección de propiedades de mesa
Una vez que te mantenga una ListObject La referencia que puedes leer:
ListObject.getDisplayName()- la barra de nombre del tabla.ListObject.getComment()- un comentario opcional asociado con la mesa.ListObject.getStartRow()/ListObject.getStartColumn()- la célula superior izquierda de la rama de mesa.ListObject.getEndRow()/ListObject.getEndColumn()- la célula derecha inferior de la rama de mesa.ListObject.isShowHeaderRow()- si la línea de cabeza es visible.ListObject.isShowTotals()- si la línea total es visible.ListObject.getListColumns()- ElListColumnCollectionpara la mesa.
Estilo de tablas
Aplique un estilo de mesa integrado utilizando ListObject.setTableStyleType(TableStyleType). El TableStyleType Enum incluye Luz (1–21), Medium (1‐28) y Oscuridad (1-11) Variantes más NONE y CUSTOM.
ListObject table = ws.getListObjects().get(0);
table.setTableStyleType(TableStyleType.TABLE_STYLE_MEDIUM_2);Estilo adicional toggles control de líneas en bandas, columnas en Bandas y primer / último énfasis de la columna:
ListObject.setShowTableStyleRowStripes(boolean)ListObject.setShowTableStyleColumnStripes(boolean)ListObject.setShowTableStyleFirstColumn(boolean)ListObject.setShowTableStyleLastColumn(boolean)
También puedes definir un nombre de estilo personalizado con ListObject.setTableStyleName(String).
Métodos de ayuda ListObjectCollection.parseTableStyleType(String) y ListObjectCollection.tableStyleTypeName(TableStyleType) Convertir entre los Enum y su representación de la línea.
Trabajar con las columnas de mesa
Acceso a las columnas individuales a través de ListObject.getListColumns(),que devuelve a ListColumnCollection.Cada uno ListColumn Exposiciones :
ListColumn.getId()- el identificador de columna OOXML unicamente basado.ListColumn.getName()/ListColumn.setName(String)- El texto de la columna.ListColumn.getTotalsCalculation()/ListColumn.setTotalsCalculation(TotalsCalculation)- la función de agregado para la línea total.ListColumn.getTotalsRowLabel()/ListColumn.setTotalsRowLabel(String)- una etiqueta personalizada en la línea total.ListColumn.getTotalsRowFormula()/ListColumn.setTotalsRowFormula(String)- una fórmula personalizada para la línea total.
ListObject table = ws.getListObjects().get(0);
ListColumnCollection columns = table.getListColumns();
for (int i = 0; i < columns.getCount(); i++) {
ListColumn col = columns.get(i);
System.out.println("Column " + col.getId() + ": " + col.getName());
}Configuración de la línea total
Puede ser que los números de la línea con ListObject.setShowTotals(true),Entonces, se establece por columna Funciones de agregado utilizando el TotalsCalculation Enum →.
ListObject table = ws.getListObjects().get(0);
table.setShowTotals(true);
ListColumn qtyColumn = table.getListColumns().get(1);
qtyColumn.setTotalsCalculation(TotalsCalculation.SUM);
ListColumn labelColumn = table.getListColumns().get(0);
labelColumn.setTotalsRowLabel("Total");Recuperar y convertir tablas
Recuperar una mesa para cubrir un rango de células diferente utilizando ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).
Convertir una tabla de vuelta a un rango celular normal con ListObject.convertToRange(). Esto elimina la estructura de la tabla mientras se conservan los datos celulares y formata.
Removemos una mesa completamente de la colección con ListObjectCollection.removeAt(index).
AutoFilter en las tablas
Mostrar o eliminar las columnas de los arroyos de filtro automático en una tabla:
ListObject.showAutoFilter()- Mostrar las arenas de filtro en la línea de cabeza.ListObject.removeAutoFilter()- Esconde las armaduras de filtros.
Sumación de referencia API
ListObject
| Metodología | Tipo de regreso | Descripción |
|---|---|---|
getDisplayName() | String | -Mostrar el nombre de la mesa. |
setDisplayName(name) | void | Toma el nombre de la muestra. |
getComment() | String | Comentarios opcionales para la mesa. |
setComment(comment) | void | Comentario de la mesa. |
getStartRow() | int | Inicio de la línea índice del rango de tabla. |
getStartColumn() | int | Inicio de la columna índice del rango de tabla. |
getEndRow() | int | Indice de línea final del rango de la tabla. |
getEndColumn() | int | Indice de la columna final del rango de tabla. |
isShowHeaderRow() | boolean | Si la línea de cabeza es visible. |
setShowHeaderRow(show) | void | Mostrar o ocultar la línea de cabeza. |
isShowTotals() | boolean | ¿Es visible la línea total?. |
setShowTotals(show) | void | Mostrar o ocultar la línea total. |
getTableStyleType() | TableStyleType | El estilo de mesa integrado. |
setTableStyleType(type) | void | Se aplica un estilo de mesa integrado. |
getTableStyleName() | String | Nombre de estilo personalizado. |
setTableStyleName(name) | void | Toma un nombre de estilo de mesa personalizado. |
getListColumns() | ListColumnCollection | Colección de columnas de la mesa. |
resize(...) | void | Recuperar la mesa a una nueva gama. |
convertToRange() | void | Convertir la mesa en un rango normal. |
showAutoFilter() | void | Dispone de los arcos de auto-filter. |
removeAutoFilter() | void | Escribe las arenas de auto-filter. |
ListObjectCollection
| Metodología | Tipo de regreso | Descripción |
|---|---|---|
getCount() | int | Número de tablas en la hoja de trabajo. |
get(index) | ListObject | Devolve la tabla al dato de índice basado en cero. |
get(name) | ListObject | Devolve la tabla con el nombre de pantalla dado. |
add(startRow, startColumn, endRow, endColumn, hasHeaders) | int | Crea una nueva tabla; devolve su índice. |
add(startCellName, endCellName, hasHeaders) | int | Crea una nueva tabla de nombres de células; devolve su índice. |
removeAt(index) | void | Eliminar la tabla en el índice dado. |
parseTableStyleType(name) | TableStyleType | Convertir una línea a un TableStyleType El valor enum. |
tableStyleTypeName(type) | String | Convertir a TableStyleType Enum a su nombre de string. |
ListColumn
| Metodología | Tipo de regreso | Descripción |
|---|---|---|
getId() | int | Identificador de columna OOXML. |
getName() | String | El texto de la columna. |
setName(name) | void | Entra el texto de la columna. |
getTotalsCalculation() | TotalsCalculation | Función de agregado total. |
setTotalsCalculation(calc) | void | - El conjunto de la agrupamiento total. |
getTotalsRowLabel() | String | Etiquetas en la línea total. |
setTotalsRowLabel(label) | void | Toma la etiqueta total de línea. |
getTotalsRowFormula() | String | Formulario personalizado para la línea total. |
setTotalsRowFormula(formula) | void | Entra en la fórmula total. |
Limitaciones
- Los enlaces de datos de la tabla no son modificables por separado; la Tabla cubre el rango de tiempo de creación. uso
resize()ajustar el rango cubierto. - Los estilos de mesa personalizados deben definirse en el libro antes de referenciarlos. por nombre via
setTableStyleName().