Werken met tabellen

Werken met tabellen

Aspose.Cells FOSS voor Java ondersteunt Excel-tabellen (ook bekend als ListObjects of gestructureerde verwijzingen). Je kunt nieuwe tabellen maken vanuit celbereiken, bestaande tabellen inspecteren, kop- en totalenrijen configureren, ingebouwde tabelstijlen toepassen, individuele kolommen benaderen, en tabellen terug converteren naar normale bereiken. Het primaire toegangspunt is ListObjectCollection, toegankelijk via Worksheet.getListObjects().


Overzicht

Tabellen op een werkblad worden beheerd via de ListObjectCollection die wordt geretourneerd door Worksheet.getListObjects(). Elke ListObject vertegenwoordigt één Excel-tabel en geeft de weergavenaam, opmerking, celbereikgrenzen, kolomcollectie, stijlinstellingen en de zichtbaarheid van de kop-/totalenrij weer.

Een nieuwe tabel wordt aangemaakt met ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), die de nulgebaseerde index van de nieuw aangemaakte tabel teruggeeft. Een alternatieve overload accepteert celnaam-strings: ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Belangrijke klassen

KlasseBeschrijving
ListObjectStelt een enkele Excel-tabel voor. Biedt getDisplayName(), getComment(), bereikcoördinaten, kolomcollectie, stijltype en zichtbaarheid van kop-/totalenrij.
ListObjectCollectionCollectie van alle tabellen op een werkblad. Ondersteunt getCount(), geïndexeerd en benoemd opzoekwerk via get(), add(), remove(), en stijltype-conversiehulpjes.
ListColumnStelt één kolom binnen een tabel voor. Biedt kolom-ID, naam en totalenrij-berekeningsinstellingen.
ListColumnCollectionGeordende collectie van kolommen in een tabel. Iterabel met telling en indextoegang.
TableStyleTypeEnum die een ingebouwde Excel-tabelstijl identificeert (Licht 1–21, Medium 1–28, Donker 1–11, of Aangepast/Geen).
TotalsCalculationEnum voor de aggregatiefunctie op de totalenrij van een tabel (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, COUNT_NUMS, CUSTOM, NONE).

Tabellen op een werkblad benaderen

Haal de ListObjectCollection op uit elke Worksheet via Worksheet.getListObjects(). Gebruik ListObjectCollection.getCount() om te bepalen hoeveel tabellen er bestaan. Individuele tabellen worden benaderd via nulgebaseerde index met ListObjectCollection.get(index) of via weergavenaam met 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());
}

Een nieuwe tabel maken

Gebruik ListObjectCollection.add() om een tabel in te voegen over een celbereik. De parameter hasHeaders geeft aan of de eerste rij van het bereik kolomkoppen bevat.

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

Tabeleigenschappen inspecteren

Zodra je een ListObject referentie hebt, kun je lezen:

  • ListObject.getDisplayName() — de weergavenaam van de tabel.
  • ListObject.getComment() — een optionele opmerking die aan de tabel is gekoppeld.
  • ListObject.getStartRow() / ListObject.getStartColumn() — linkerbovenste cel van het tabelbereik.
  • ListObject.getEndRow() / ListObject.getEndColumn() — rechteronderste cel van het tabelbereik.
  • ListObject.isShowHeaderRow() — of de headerrij zichtbaar is.
  • ListObject.isShowTotals() — of de totalenrij zichtbaar is.
  • ListObject.getListColumns() — de ListColumnCollection voor de tabel.

Tabellen opmaken

Pas een ingebouwde tabelstijl toe met behulp van ListObject.setTableStyleType(TableStyleType). De TableStyleType enum bevat Light (1–21), Medium (1–28) en Dark (1–11) varianten plus NONE en CUSTOM.

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

Extra stijlopties regelen gestreepte rijen, gestreepte kolommen en de nadruk op de eerste/laatste kolom:

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

U kunt ook een aangepaste stijlnaam instellen met ListObject.setTableStyleName(String).

Helper-methoden ListObjectCollection.parseTableStyleType(String) en ListObjectCollection.tableStyleTypeName(TableStyleType) converteren tussen de enum en de stringrepresentatie.


Werken met tabelkolommen

Toegang tot individuele kolommen via ListObject.getListColumns(), die een ListColumnCollection retourneert. Elke ListColumn biedt:

  • ListColumn.getId() — de één-gebaseerde OOXML kolomidentificator.
  • ListColumn.getName() / ListColumn.setName(String) — de kolomkoptekst.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) — de aggregatiefunctie voor de totalenrij.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) — een aangepast label in de totalenrij.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) — een aangepaste formule voor de totalenrij.
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());
}

Configureren van de totalenrij

Schakel de totalenrij in met ListObject.setShowTotals(true), en stel vervolgens per kolom aggregatiefuncties in met behulp van de 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");

Tabellen herschalen en converteren

Pas de grootte van een tabel aan om een ander celbereik te dekken met ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Converteer een tabel terug naar een normaal celbereik met ListObject.convertToRange(). Dit verwijdert de tabelstructuur terwijl de celgegevens en opmaak behouden blijven.

Verwijder een tabel volledig uit de collectie met ListObjectCollection.removeAt(index).


AutoFilter op Tabellen

Toon of verwijder de kolom-drop-down auto-filterpijlen op een tabel:

  • ListObject.showAutoFilter() — toon filterpijlen op de koprij.
  • ListObject.removeAutoFilter() — verberg de filterpijlen.

API Reference Samenvatting

ListObject

MethodeRetourtypeBeschrijving
getDisplayName()StringWeergavenaam van de tabel.
setDisplayName(name)voidStelt de weergavenaam in.
getComment()StringOptionele opmerking voor de tabel.
setComment(comment)voidStelt de tabelcommentaar in.
getStartRow()intStart rij-index van het tabelbereik.
getStartColumn()intStart kolom-index van het tabelbereik.
getEndRow()intEind rij-index van het tabelbereik.
getEndColumn()intEindkolomindex van het tabelbereik.
isShowHeaderRow()booleanOf de koprij zichtbaar is.
setShowHeaderRow(show)voidToont of verbergt de koprij.
isShowTotals()booleanOf de totalenrij zichtbaar is.
setShowTotals(show)voidToont of verbergt de totalenrij.
getTableStyleType()TableStyleTypeDe ingebouwde tabelstijl.
setTableStyleType(type)voidPast een ingebouwde tabelstijl toe.
getTableStyleName()StringAangepaste tabelstijlnaam.
setTableStyleName(name)voidStelt een aangepaste tabelstijlnaam in.
getListColumns()ListColumnCollectionDe kolomverzameling van de tabel.
resize(...)voidVerandert de grootte van de tabel naar een nieuw bereik.
convertToRange()voidConverteert de tabel naar een normaal bereik.
showAutoFilter()voidToont auto-filterpijlen.
removeAutoFilter()voidVerbergt auto-filterpijlen.

ListObjectCollection

MethodeRetourtypeBeschrijving
getCount()intAantal tabellen op het werkblad.
get(index)ListObjectRetourneert de tabel op de opgegeven nulgebaseerde index.
get(name)ListObjectRetourneert de tabel met de opgegeven weergavenaam.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intCreëert een nieuwe tabel; retourneert de index.
add(startCellName, endCellName, hasHeaders)intCreëert een nieuwe tabel op basis van celnamen; retourneert de index.
removeAt(index)voidVerwijdert de tabel op de opgegeven index.
parseTableStyleType(name)TableStyleTypeConverteert een string naar een TableStyleType enumwaarde.
tableStyleTypeName(type)StringConverteert een TableStyleType enum naar de stringnaam ervan.

ListColumn

MethodeRetourtypeBeschrijving
getId()intEén-gebaseerde OOXML kolomidentificator.
getName()StringKolomkoptekst.
setName(name)voidStelt de kolomkoptekst in.
getTotalsCalculation()TotalsCalculationAggregatiefunctie voor totalenrij.
setTotalsCalculation(calc)voidStelt de totalenrijaggregatie in.
getTotalsRowLabel()StringAangepast label in de totalenrij.
setTotalsRowLabel(label)voidStelt het label van de totalenrij in.
getTotalsRowFormula()StringAangepaste formule voor de totalenrij.
setTotalsRowFormula(formula)voidStelt de formule voor de totalenrij in.

Beperkingen

  • Tabelgegevensbindingen zijn niet afzonderlijk aanpasbaar; de tabel bestrijkt het bereik dat bij het aanmaken is opgegeven. Gebruik resize() om het gedekte bereik aan te passen.
  • Aangepaste tabelstijlen moeten in de werkmap worden gedefinieerd voordat ze via setTableStyleName() bij naam worden aangeroepen.

Zie ook

 Nederlands