Specificare la posizione assoluta dell'elemento pivot
Contents
[
Hide
]
A volte, l’utente deve specificare la posizione assoluta degli elementi pivot, Aspose.Cells API ha esposto alcune nuove proprietà e un metodo per soddisfare questo requisito dell’utente.
- AggiuntoPivotItem.setPosition() proprietà che può essere utilizzata per specificare l’indice di posizione in tutti i PivotItem indipendentemente dal nodo padre. AggiuntoPivotItem.setPositionInSameParentNode() proprietà che può essere utilizzata per specificare l’indice di posizione nei PivotItems sotto lo stesso nodo padre.
- Aggiunto[PivotItem.move(int count, boolean isSameParent)](https://reference.aspose.com/cells/java/com.aspose.cells/pivotitem#move(int,%20boolean)per spostare l’elemento verso l’alto o verso il basso in base al valore del conteggio, dove il conteggio è il numero di posizioni per spostare l’oggetto PivotItem verso l’alto o verso il basso. Se il valore del conteggio è minore di zero, l’elemento verrà spostato verso l’alto mentre se il valore del conteggio è maggiore di zero, il PivotItem si sposterà verso il basso, parametro di tipo booleano isSameParent che specifica se l’operazione di spostamento deve essere eseguita nello stesso nodo padre o non.
- Obsoleto ilPivotItem.move(int count) metodo, pertanto, si suggerisce di utilizzare il metodo appena aggiuntoPivotItem.move(int count, boolean isSameParent) invece.
Si prega di notare che è necessario chiamare ilTabella pivot.refreshData eTabella pivot.calculateData metodi prima dell’usoPivotItem.setPosition(), PivotItem.setPositionInSameParentNode() proprietà ePivotItem.move(int count, boolean isSameParent) metodo.
Codice d’esempio
Il seguente codice di esempio crea una tabella pivot e quindi specifica le posizioni degli elementi pivot nello stesso nodo padre.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(SpecifyAbsolutePositionOfPivotItem.class); | |
Workbook wb = new Workbook(dataDir + "source.xlsx"); | |
Worksheet wsPivot = wb.getWorksheets().add("pvtNew Hardware"); | |
Worksheet wsData = wb.getWorksheets().get("New Hardware - Yearly"); | |
// Get the pivottables collection for the pivot sheet | |
PivotTableCollection pivotTables = wsPivot.getPivotTables(); | |
// Add PivotTable to the worksheet | |
int index = pivotTables.add("='New Hardware - Yearly'!A1:D621", "A3", "HWCounts_PivotTable"); | |
// Get the PivotTable object | |
PivotTable pvtTable = pivotTables.get(index); | |
// Add vendor row field | |
pvtTable.addFieldToArea(PivotFieldType.ROW, "Vendor"); | |
// Add item row field | |
pvtTable.addFieldToArea(PivotFieldType.ROW, "Item"); | |
// Add data field | |
pvtTable.addFieldToArea(PivotFieldType.DATA, "2014"); | |
// Turn off the subtotals for the vendor row field | |
PivotField pivotField = pvtTable.getRowFields().get("Vendor"); | |
pivotField.setSubtotals(PivotFieldSubtotalType.NONE, true); | |
// Turn off grand total | |
pvtTable.setColumnGrand(false); | |
// Please call the PivotTable.RefreshData() and PivotTable.CalculateData(). Before using PivotItem.Position, | |
// PivotItem.PositionInSameParentNode and PivotItem.Move(int count, bool isSameParent). | |
pvtTable.refreshData(); | |
pvtTable.calculateData(); | |
pvtTable.getRowFields().get("Item").getPivotItems().get("4H12").setPositionInSameParentNode(0); | |
pvtTable.getRowFields().get("Item").getPivotItems().get("DIF400").setPositionInSameParentNode(3); | |
/* | |
* As a result of using PivotItem.PositionInSameParentNode,it will change the original sort sequence, // so when you use | |
* PivotItem.PositionInSameParentNode in another parent node,you need call the method named "CalculateData" again. | |
*/ | |
pvtTable.calculateData(); | |
pvtTable.getRowFields().get("Item").getPivotItems().get("CA32").setPositionInSameParentNode(1); | |
pvtTable.getRowFields().get("Item").getPivotItems().get("AAA3").setPositionInSameParentNode(2); | |
// Save file | |
wb.save(dataDir + "output.xlsx"); |