Arbeta med tabeller

Arbeta med tabeller

Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or strukturerade referenser). Du kan skapa nya tabeller från cell rangor, inspektera befintliga tabeller, konfigurera header och totala rader, tillämpa inbyggda tabellstilar, åtkomst till enskilda kolumner, och konvertera tabeller tillbaka till normala rader. Inträdepunkten är ListObjectCollection,Tillträde via Worksheet.getListObjects().


Översikt

Tabeller på ett arbetsblad hanteras genom ListObjectCollection återvände till Worksheet.getListObjects().Varje ListObject En Excel-tabell och visar dess displaynamn, kommentar, cellområde gränser, kolumnsamling, stil inställningar och header/totals rad synlighet.

Ett nytt bord skapas med ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), som returnerar nollbaserad index för den nyligen skapade tabellen. ett alternativ Överbelastning accepterar cellnamn strängar: ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Viktiga klasser

ClassBeskrivning
ListObjectRepresenterar en enda Excel-tabell. Exponeringar getDisplayName(), getComment(), radkoordinater, kolumnen samling, stil typ och header/totals rad synlighet.
ListObjectCollectionSamla alla tabeller på en arbetsblock. stöd för getCount(),indexerad och namngiven lookup via get(), add(), remove(),och styck-typ konverteringsassistenter.
ListColumnRepresenterar en kolumn inom en tabell. visar kolumnen ID, namn och totals-row beräkningsinställningar.
ListColumnCollectionBeställ samlingen av kolumner i en tabell. Iterable med räkning och indexåtkomst.
TableStyleTypeEnum identifierar en inbyggd Excel-tabellstil (Light 1–21, Medium 1 – 28, Dark 1-11 eller Custom/None).
TotalsCalculationEnum för aggregeringsfunktionen på en tabells totala rad (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, CONTA_NUMS, CUSTOM, NONE).

Tillgång till tabeller på ett arbetsblad

återställer den ListObjectCollection Från någon Worksheet via Worksheet.getListObjects().Användning ListObjectCollection.getCount() att bestämma hur många tabeller det finns. enskilda tabell är tillgängliga genom nollbaserad index via ListObjectCollection.get(index) eller genom att visa namnet genom 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());
}

Skapa ett nytt bord

Användning ListObjectCollection.add() att sätta in en tabell över ett cellområde. hasHeaders parameter indikerar om den första raden av intervallet innehåller Kolumnerna för huvud.

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

Kontrollera bordsförmåner

När du håller en ListObject Referens du kan läsa:

  • ListObject.getDisplayName() — tabellens displaynamn sträng.
  • ListObject.getComment() - ett valfritt inlägg som är kopplat till tabellen.
  • ListObject.getStartRow() / ListObject.getStartColumn() - den övre vänstra cellen i bordsfältet.
  • ListObject.getEndRow() / ListObject.getEndColumn() — nedre högra cellen i tabellområdet.
  • ListObject.isShowHeaderRow() - om headerretsen är synlig.
  • ListObject.isShowTotals() - om den totala raden är synlig.
  • ListObject.getListColumns() - den ListColumnCollection för bordet .

Styling Taller

Applicera en inbyggd bordsstil med hjälp av ListObject.setTableStyleType(TableStyleType). Den TableStyleType Enum innehåller Ljus (1–21), Medium (1 – 28) och Mörk (1-11) Variationer Plus NONE och CUSTOM.

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

Ytterligare stil toggles styr bandade rader, bandad kolumner och första / sista kolumn fokus:

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

Du kan också ange ett anpassat stilnamn med ListObject.setTableStyleName(String).

Hjälper metoder ListObjectCollection.parseTableStyleType(String) och ListObjectCollection.tableStyleTypeName(TableStyleType) konverterar mellan de Enum och dess strängrepresentation.


Arbeta med bordkolumner

Tillgång till enskilda kolumner genom ListObject.getListColumns(),som återvänder till A ListColumnCollection.Varje ListColumn Exponerar för:

  • ListColumn.getId() — den enbaserade OOXML-kolumnidentifieraren.
  • ListColumn.getName() / ListColumn.setName(String) - Kolumnen header text.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) — aggregationens funktion för den totala raden.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) - ett anpassat märke i totalrutan.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) - En anpassad formel för totalrutan.
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());
}

Konfigurera Totals Row

möjliggör totalriktning med ListObject.setShowTotals(true),och sedan ställa per-column Aggressioner med hjälp av TotalsCalculation Enum är.

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

Resigera och konvertera tabeller

Resignera en tabell för att täcka ett annat cellområde med hjälp av ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Konvertera en tabell tillbaka till ett normalt cellområde med ListObject.convertToRange(). Detta tar bort tabellstrukturen samtidigt som cellen data och format.

Ta bort en tabell helt från samlingen med ListObjectCollection.removeAt(index).


AutoFilter på bordet

Visa eller ta bort kolumnen drop-down auto-filter strängar på en tabell:

  • ListObject.showAutoFilter() - Visa filterstrålar på headerrutan.
  • ListObject.removeAutoFilter() - göm filtret strängar.

API Referens sammanfattning

ListObject

MethodTillbaka typBeskrivning
getDisplayName()StringVisa namnet på bordet.
setDisplayName(name)voidAnge displaynamnet.
getComment()StringOptionell kommentar till bordet.
setComment(comment)voidLägg till kommentar på tabellen.
getStartRow()intStart radindexet i tabellområdet.
getStartColumn()intStart kolumnen index i tabellområdet.
getEndRow()intEnd rad index av tabellområdet.
getEndColumn()intEnd kolumnindex i tabellområdet.
isShowHeaderRow()booleanOm headerret är synligt.
setShowHeaderRow(show)voidVisa eller dölj header raden.
isShowTotals()booleanOm den totala raden är synlig.
setShowTotals(show)voidVisa eller dölja den totala raden.
getTableStyleType()TableStyleTypeInbyggd bordsstil.
setTableStyleType(type)voidTillämpar en inbyggd bordsstil.
getTableStyleName()StringAnpassad bords stil namn.
setTableStyleName(name)voidStäll in en standard bordstyl namn.
getListColumns()ListColumnCollectionKollektionen av kolumnerna på tabellen.
resize(...)voidOmdirigera bordet till ett nytt sortiment.
convertToRange()voidKonvertera tabellen till ett normalt intervall.
showAutoFilter()voidSkär auto-filter strängar.
removeAutoFilter()voidHåller självfilterstrålar.

ListObjectCollection

MethodTillbaka typBeskrivning
getCount()intAntal tabeller på arbetsbladen.
get(index)ListObjectReturnerar tabellen till den angivna nollbaserade indexet.
get(name)ListObjectÅterställ tabellen med det angivna displaynamnet.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intSkapar en ny tabell; returnerar sin index.
add(startCellName, endCellName, hasHeaders)intSkapar en ny tabell från cellnamn; returnerar dess index.
removeAt(index)voidTa bort tabellen på den angivna indexet.
parseTableStyleType(name)TableStyleTypeKonverterar en sträng till en TableStyleType Enum värde .
tableStyleTypeName(type)StringKonverterar A TableStyleType Enum till dess stringnamn.

ListColumn

MethodTillbaka typBeskrivning
getId()intEn baserad OOXML kolumnen identifierare.
getName()StringKolumn header text.
setName(name)voidStäll in text för kolumnen header.
getTotalsCalculation()TotalsCalculationTotals rad aggregation funktion.
setTotalsCalculation(calc)voidSätt samman hela raden aggregation.
getTotalsRowLabel()StringAnpassad etikett i totalrutan.
setTotalsRowLabel(label)voidSätt hela raden etikett.
getTotalsRowFormula()StringAnpassad formel för totalrutan.
setTotalsRowFormula(formula)voidSätt in hela raden formel.

Begränsningar

  • Tabelldatabindningar kan inte ändras separat; tabellen täcker intervallet angivna vid skapandet. användning resize() justerar det täckta området.
  • Anpassade tabellstilar måste definieras i arbetsboken innan de hänvisas till dem. Namn via setTableStyleName().

Se även

 Svenska