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
| Class | Beskrivning |
|---|---|
ListObject | Representerar en enda Excel-tabell. Exponeringar getDisplayName(), getComment(), radkoordinater, kolumnen samling, stil typ och header/totals rad synlighet. |
ListObjectCollection | Samla alla tabeller på en arbetsblock. stöd för getCount(),indexerad och namngiven lookup via get(), add(), remove(),och styck-typ konverteringsassistenter. |
ListColumn | Representerar en kolumn inom en tabell. visar kolumnen ID, namn och totals-row beräkningsinställningar. |
ListColumnCollection | Beställ samlingen av kolumner i en tabell. Iterable med räkning och indexåtkomst. |
TableStyleType | Enum identifierar en inbyggd Excel-tabellstil (Light 1–21, Medium 1 – 28, Dark 1-11 eller Custom/None). |
TotalsCalculation | Enum 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()- denListColumnCollectionfö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
| Method | Tillbaka typ | Beskrivning |
|---|---|---|
getDisplayName() | String | Visa namnet på bordet. |
setDisplayName(name) | void | Ange displaynamnet. |
getComment() | String | Optionell kommentar till bordet. |
setComment(comment) | void | Lägg till kommentar på tabellen. |
getStartRow() | int | Start radindexet i tabellområdet. |
getStartColumn() | int | Start kolumnen index i tabellområdet. |
getEndRow() | int | End rad index av tabellområdet. |
getEndColumn() | int | End kolumnindex i tabellområdet. |
isShowHeaderRow() | boolean | Om headerret är synligt. |
setShowHeaderRow(show) | void | Visa eller dölj header raden. |
isShowTotals() | boolean | Om den totala raden är synlig. |
setShowTotals(show) | void | Visa eller dölja den totala raden. |
getTableStyleType() | TableStyleType | Inbyggd bordsstil. |
setTableStyleType(type) | void | Tillämpar en inbyggd bordsstil. |
getTableStyleName() | String | Anpassad bords stil namn. |
setTableStyleName(name) | void | Ställ in en standard bordstyl namn. |
getListColumns() | ListColumnCollection | Kollektionen av kolumnerna på tabellen. |
resize(...) | void | Omdirigera bordet till ett nytt sortiment. |
convertToRange() | void | Konvertera tabellen till ett normalt intervall. |
showAutoFilter() | void | Skär auto-filter strängar. |
removeAutoFilter() | void | Håller självfilterstrålar. |
ListObjectCollection
| Method | Tillbaka typ | Beskrivning |
|---|---|---|
getCount() | int | Antal tabeller på arbetsbladen. |
get(index) | ListObject | Returnerar tabellen till den angivna nollbaserade indexet. |
get(name) | ListObject | Återställ tabellen med det angivna displaynamnet. |
add(startRow, startColumn, endRow, endColumn, hasHeaders) | int | Skapar en ny tabell; returnerar sin index. |
add(startCellName, endCellName, hasHeaders) | int | Skapar en ny tabell från cellnamn; returnerar dess index. |
removeAt(index) | void | Ta bort tabellen på den angivna indexet. |
parseTableStyleType(name) | TableStyleType | Konverterar en sträng till en TableStyleType Enum värde . |
tableStyleTypeName(type) | String | Konverterar A TableStyleType Enum till dess stringnamn. |
ListColumn
| Method | Tillbaka typ | Beskrivning |
|---|---|---|
getId() | int | En baserad OOXML kolumnen identifierare. |
getName() | String | Kolumn header text. |
setName(name) | void | Ställ in text för kolumnen header. |
getTotalsCalculation() | TotalsCalculation | Totals rad aggregation funktion. |
setTotalsCalculation(calc) | void | Sätt samman hela raden aggregation. |
getTotalsRowLabel() | String | Anpassad etikett i totalrutan. |
setTotalsRowLabel(label) | void | Sätt hela raden etikett. |
getTotalsRowFormula() | String | Anpassad formel för totalrutan. |
setTotalsRowFormula(formula) | void | Sä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().