Lucrarea cu tabele

Lucrarea cu tabele

Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Puteți crea noi tabele din intervale de celule, inspecta tabele existente, configurarea rândurilor de intitulare și a totalului, aplicarea stilurilor integrate ale tabelului;, accesarea coloanelor individuale, și de a converti tabele înapoi la intervale normale. Primarul punctul de intrare este: ListObjectCollection, accesat prin intermediul: Worksheet.getListObjects().


Prezentare generală

Tablele de pe o foaie de calcul sunt gestionate prin intermediul sistemului ListObjectCollection returnată de: Worksheet.getListObjects().Fiecare . ListObject reprezintă o tablă Excel și expune numele de afișare, comentariul, limitele intervalei celulelor, colectia de coloane, stilul setările și vizibilitatea rândurilor de titlu/total.

Se creează o nouă tablă cu: ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), care returnează indexul pe bază de zero al noului tabel creat. O alternativă este: Overload acceptă șiruri de nume ale celulelor: ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Clase cheie

Clasa de învăţământDescriere:
ListObjectReprezintă o singură tablă Excel. Expune getDisplayName(), getComment(), coordonatele de gamă, colectarea coloanelor, tipul stilului și vizibilitatea rândurilor intitulatoare/total.
ListObjectCollectionColectarea tuturor tabelurilor dintr-o foaie de lucru. Suporturi getCount(), indexate şi numite prin căutare. get(), add(), remove(), și ajutoare de conversie pentru stiluri.
ListColumnReprezintă o coloană dintr-un tabel. Expune ID-ul, numele și setările de calcul al rândului total.
ListColumnCollectionColectare ordonată de coloane într-un tabel. Iterabil cu acces la număr și index.
TableStyleTypeEnum identificând un stil de tabel Excel încorporat (Light 121, Medium 1 ??28, Dark 1 11, sau Custom/None).
TotalsCalculationEnum pentru funcția de agregare pe rândul total al unei tabele (SUMĂ, CONTREZUIRE, MEDIA, MAX, MIN, STD_DEV, VAR, COUNT_NUMS, CUSTOM, NONE).

Accesibilitatea tabelurilor pe o foaie de lucru

Obţineţi… ListObjectCollection de la orice Worksheet prin intermediul Worksheet.getListObjects().- Foloseste-l . ListObjectCollection.getCount() pentru a determina Aceste tabele sunt accesate prin index zero-based prin intermediul ListObjectCollection.get(index) sau prin afișare numele prin intermediul: 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());
}

Crearea unei noi mese

Utilizare: ListObjectCollection.add() Pentru a introduce o tabelă pe un interval de celule. hasHeaders parametru indică dacă primul rând al intervalului conține: titlurile de coloană.

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

Inspecționarea proprietăților tabelului

Odată ce ai o … ListObject referință puteți citi:

  • ListObject.getDisplayName() șirul de nume al tabelului.
  • ListObject.getComment() un comentariu opțional asociat tabelului.
  • ListObject.getStartRow() / ListObject.getStartColumn() Celulară din partea de sus a stângă a intervalului tabelului.
  • ListObject.getEndRow() / ListObject.getEndColumn() celula din dreapta jos a intervalului tabelului.
  • ListObject.isShowHeaderRow() dacă rândul de intitulare este vizibil.
  • ListObject.isShowTotals() dacă rândul total este vizibil.
  • ListObject.getListColumns() în ListColumnCollection pentru masa.

Tabelele de stil

Aplicați un stil de tabel integrat folosind ListObject.setTableStyleType(TableStyleType). În ceea ce priveşte TableStyleType enum include Light (121), Medium (1 ??28), și Dark (1 11) variante plus NONE și de: CUSTOM.

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

Modele suplimentare de schimb control al rândurilor cu benzi, ale coloanelor cu bandă și accentul pe prima/ultima coloană:

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

De asemenea, puteți seta un nume de stil personalizat cu: ListObject.setTableStyleName(String).

Metode auxiliare ListObjectCollection.parseTableStyleType(String) și de: ListObjectCollection.tableStyleTypeName(TableStyleType) convertit între enum și reprezentarea lui de șir.


Lucrarea cu coloanele de tabel

Acces la coloane individuale prin: ListObject.getListColumns(), care returnează o ListColumnCollection.Fiecare . ListColumn expune:

  • ListColumn.getId() identificatorul de coloană OOXML pe bază unică.
  • ListColumn.getName() / ListColumn.setName(String) textul de intitulare al coloanei.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) funcția de agregare pentru rândul total.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) o etichetă personalizată în rândul total.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) o formulă personalizată pentru rândul 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());
}

Configurată a rândului total

Actionează rândul total cu: ListObject.setShowTotals(true), apoi setat pe coloană funcții de agregare folosind TotalsCalculation - Nu, nu.

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

Redimensionarea şi transformarea tabelurilor

Modificați dimensiunea unui tabel pentru a acoperi o gamă de celule diferită folosind: ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Convertează o tabelă înapoi la un interval normal de celule cu: ListObject.convertToRange(). Acest lucru elimină structura tabelului, păstrând datele celulei și formatarea.

Îndepărtați complet o tablă din colecție cu: ListObjectCollection.removeAt(index).


Autofiltru pe mese

Arată sau îndepărtează săgețile de filtru automat din coloana descărcată pe un tabel:

  • ListObject.showAutoFilter() afișarea săgeților de filtru pe rândul de intitulare.
  • ListObject.removeAutoFilter() ascunde săgeţile filtrului.

Rezultatele de la data aplicării.

ListObject

Metoda de evaluareTip de returnareDescriere:
getDisplayName()StringIndică numele mesei.
setDisplayName(name)voidSetarea numelui de afișare.
getComment()StringComentariile pentru tabel sunt opționale.
setComment(comment)voidStabileşte comentariul tabelului.
getStartRow()intIndicele rândului de pornire al intervalului tabelului.
getStartColumn()intIndicele de start al coloanei din intervalul tabelului.
getEndRow()intIndicele rândului final al intervalului tabelului.
getEndColumn()intIndicele coloanei finale a intervalului tabelului.
isShowHeaderRow()booleanDacă rândul de intitulare este vizibil.
setShowHeaderRow(show)voidArată sau ascunde rândul de intitulare.
isShowTotals()booleanDacă rândul total este vizibil.
setShowTotals(show)voidArată sau ascunde rândul total.
getTableStyleType()TableStyleTypeStilul de masă încorporată.
setTableStyleType(type)voidAplică un stil de masă încorporat.
getTableStyleName()StringNumele stilului de masă personalizat.
setTableStyleName(name)voidSetă un nume de stil personalizat pentru tabel.
getListColumns()ListColumnCollectionColectia de coloane a mesei.
resize(...)voidRedimensionarea masa la o nouă gamă.
convertToRange()voidConvertează tabelul la o gamă normală.
showAutoFilter()voidAfişează săgeţile de filtrare automată.
removeAutoFilter()voidAscunde săgeţile cu filtru automat.

ListObjectCollection

Metoda de evaluareTip de returnareDescriere:
getCount()intNumărul de tabele din fișă.
get(index)ListObjectÎntoarce tabelul la indicele dat pe bază de zero.
get(name)ListObjectÎntoarce tabelul cu numele de afișare dat.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intCreează o nouă tabelă; returnează indexul acesteia.
add(startCellName, endCellName, hasHeaders)intCreează o nouă tabelă din numele celulelor; returnează indicele acesteia.
removeAt(index)voidÎndepărtează tabelul de la indicele dat.
parseTableStyleType(name)TableStyleTypeConvertează un șir la o TableStyleType Valori enum.
tableStyleTypeName(type)StringConvertează un TableStyleType enum la numele său de șir.

ListColumn

Metoda de evaluareTip de returnareDescriere:
getId()intIdentificator de coloană OOXML pe bază unică.
getName()StringText de intitulare a coloanei.
setName(name)voidStabilește textul de intitulare a coloanei.
getTotalsCalculation()TotalsCalculationFuncția de agregare a rândurilor total.
setTotalsCalculation(calc)voidStabilește agregarea rândurilor de sume.
getTotalsRowLabel()StringEtichetă personalizată în rândul total.
setTotalsRowLabel(label)voidSetarea totalul rând etichetă.
getTotalsRowFormula()StringFormula personalizată pentru rândul total.
setTotalsRowFormula(formula)voidStabilește formula rândului total.

Limite de aplicare

  • Legăturile de date ale tabelului nu pot fi modificate separat; tabelul acoperă intervalul: specificat la momentul creării. resize() pentru a ajusta gama acoperită.
  • Stilurile de tabel personalizate trebuie definite în cartea de lucru înainte de a le face referință. prin nume via setTableStyleName().

Vezi și:

 Română