Travailler avec des tables

Travailler avec des tables

Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Vous pouvez créer de nouvelles tables à partir des rangs cellulaires, inspecter les tables existantes, configurer le titre et les lignes totales, appliquer des styles de table intégrés, accéder aux colonnes individuelles, et convertir les tables à la reprise normale. Le point d’entrée est ListObjectCollection,Accès par le biais de Worksheet.getListObjects().


Vue d’ensemble

Les tables sur un tableau de travail sont gérés par le biais du ListObjectCollection Retourné par Worksheet.getListObjects().Chaque ListObject Il est un tableau Excel et exposer son nom d’affichage, commentaire, limites de gamme cellulaire, collection de colonnes, style Les paramètres et les header/totals sont visibles.

Une nouvelle table est créée avec ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), qui retourne l’indice basé sur zéro de la table nouvellement créée. une alternative Le surcharge accepte les lignes de nom cellulaire : ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Classes clés

ClassesDescription
ListObjectIl représente une table unique Excel. Expositions getDisplayName(), getComment(), coordonnées de gamme, collection de colonnes, type de style et visibilité des têtes/totales.
ListObjectCollectionCollecte de tous les tables sur un feuille de travail.Support getCount(),Indicé et nommé sur le site get(), add(), remove(),et les aides de conversion de type style.
ListColumnReprésente une colonne dans un tableau. Expose l’ID de la colonie, le nom et les paramètres de calcul total-roue.
ListColumnCollectionCollecte commandée de colonnes dans une table. Iterable avec le nombre et l’accès à l’index.
TableStyleTypeEnum identifiant un style de table Excel intégré (Light 1–21, Medium 1-28, Dark 1-11 ou Custom/None).
TotalsCalculationEnum pour la fonction d’agrément sur l’ordre total d’une table (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, CONTACT_NUMS, CUSTOM, NONE).

Accès à des tables sur un feuille de travail

Retrée le ListObjectCollection De toute Worksheet par via Worksheet.getListObjects().Utiliser ListObjectCollection.getCount() Pour déterminer nombre de tables existant. les tabelles individuelles sont accessibles par index basé sur zéro à travers le ListObjectCollection.get(index) ou par le nom de l’afficheur 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());
}

Créer une nouvelle table

Utiliser ListObjectCollection.add() pour insérer une table au-dessus d’une gamme de cellules. hasHeaders Paramètre indique si la première ligne de la gamme contient Les chefs de colonne.

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

Inspection des propriétés de table

Une fois que vous avez un ListObject Le référentiel que vous pouvez lire :

  • ListObject.getDisplayName() - la barre de nom d’affichage du tableau.
  • ListObject.getComment() - un commentaire facultatif associé à la table.
  • ListObject.getStartRow() / ListObject.getStartColumn() - la cellule supérieure gauche de l’ordre du table.
  • ListObject.getEndRow() / ListObject.getEndColumn() - la cellule droite de l’ordre du table.
  • ListObject.isShowHeaderRow() - si la ligne de tête est visible.
  • ListObject.isShowTotals() - si la ligne totale est visible.
  • ListObject.getListColumns() - le ListColumnCollection pour la table.

Tableau de style

Application d’un style de table intégré en utilisant ListObject.setTableStyleType(TableStyleType). Le TableStyleType Enum comprend Lumière (1–21), Medium (1‐28) et Ténèbres (1-11) Variations plus NONE et CUSTOM.

ListObject table = ws.getListObjects().get(0);
table.setTableStyleType(TableStyleType.TABLE_STYLE_MEDIUM_2);

Style supplémentaire toggles contrôle les lignes bandées, columnes bande et l’accent de la première/la dernière colonne:

  • ListObject.setShowTableStyleRowStripes(boolean)
  • ListObject.setShowTableStyleColumnStripes(boolean)
  • ListObject.setShowTableStyleFirstColumn(boolean)
  • ListObject.setShowTableStyleLastColumn(boolean)

Vous pouvez également définir un nom de style personnalisé avec ListObject.setTableStyleName(String).

Méthodes d’aide ListObjectCollection.parseTableStyleType(String) et ListObjectCollection.tableStyleTypeName(TableStyleType) Convertir entre les Enum et sa représentation de la ligne.


Travailler avec des tableaux de colonnes

Accès aux colonnes individuelles par le biais de ListObject.getListColumns(),qui revient à ListColumnCollection.Chaque ListColumn Exposé :

  • ListColumn.getId() - l’identificateur de colonne OOXML à base unique.
  • ListColumn.getName() / ListColumn.setName(String) - le texte de la colonne.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) - la fonction d’agrément pour l’ordre total.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) - un étiquette personnalisé dans la ligne totales.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) - une formule personnalisée pour la ligne totales.
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());
}

Configurer la ligne totales

Il permet de faire la totalité des ListObject.setShowTotals(true),Et puis, par colonne fonction d’agrément en utilisant le 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");

Réversion et conversion des tables

Réafficher une table pour couvrir un autre range de cellules en utilisant ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Convertir une table à un rang normal de cellules avec ListObject.convertToRange(). Cela supprime la structure de table tout en conservant les données cellulaires et le formatage.

Supprimer une table entièrement de la collection avec ListObjectCollection.removeAt(index).


Filtre sur table

Afficher ou supprimer la colonne de filtre automatique à descente sur une table :

  • ListObject.showAutoFilter() - afficher les filtres sur la ligne de tête.
  • ListObject.removeAutoFilter() - cacher les filtres.

Le résumé de référence API

ListObject

méthodeType de retourDescription
getDisplayName()StringAfficher le nom de la table.
setDisplayName(name)voidMettez le nom de l’affichage.
getComment()StringCommentaires facultatifs sur la table.
setComment(comment)voidFaites le commentaire de table.
getStartRow()intDémarrez l’index de la ligne du tableau.
getStartColumn()intDémarrez l’indice de colonne du champ de table.
getEndRow()intIndice de la ligne finale du tableau.
getEndColumn()intIndice de la colonne finale du champ de table.
isShowHeaderRow()booleanLe titre de la ligne est visible.
setShowHeaderRow(show)voidAfficher ou cacher la ligne de tête.
isShowTotals()booleanLe total de la ligne est visible.
setShowTotals(show)voidIl montre ou cache la ligne totale.
getTableStyleType()TableStyleTypeLe style de table intégré.
setTableStyleType(type)voidIl s’agit d’un style de table intégré.
getTableStyleName()StringNom de table personnalisé.
setTableStyleName(name)voidUn nom de table style.
getListColumns()ListColumnCollectionCollecte de colonnes de la table.
resize(...)voidRéécouter la table à un nouveau rang.
convertToRange()voidConvertez la table à un rang normal.
showAutoFilter()voidIl affiche les filtres auto.
removeAutoFilter()voidIl est à l’aide de filtres auto.

ListObjectCollection

méthodeType de retourDescription
getCount()intNombre de tableaux sur le feuille de travail.
get(index)ListObjectRetourne la table à l’indice basé sur le zéro donné.
get(name)ListObjectRetournez la table avec le nom d’affichage donné.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intCréez une nouvelle table ; retournez son index.
add(startCellName, endCellName, hasHeaders)intCréer une nouvelle table à partir des noms de cellules ; retourner son index.
removeAt(index)voidRetirez la table à l’index donné.
parseTableStyleType(name)TableStyleTypeConvertir un fil à une TableStyleType valeur enum.
tableStyleTypeName(type)StringConvertir à TableStyleType Enum à son nom string.

ListColumn

méthodeType de retourDescription
getId()intIdentificateur de colonne OOXML.
getName()StringLe texte de la colonne.
setName(name)voidDéfinir le texte de la colonne.
getTotalsCalculation()TotalsCalculationLa fonction d’agrément total.
setTotalsCalculation(calc)voidDéfinir l’ensemble de la ligne d’accumulation.
getTotalsRowLabel()StringL’étiquette personnalisée dans la ligne totale.
setTotalsRowLabel(label)voidMettez le total de l’étiquette.
getTotalsRowFormula()StringFormule personnalisée pour la ligne totale.
setTotalsRowFormula(formula)voidIl s’agit de la formule totale.

Les limites

  • Les liens de données de table ne peuvent pas être modifiés séparément; la table couvre le champ de Date de création : utilisation resize() Adapter la gamme couverte.
  • Les styles de table personnalisés doivent être définis dans le livre d’oeuvre avant de les référer. par nom via setTableStyleName().

Voir aussi

 Français