Angabe der absoluten Position des Pivot-Elements
Contents
[
Hide
]
Manchmal muss der Benutzer die absolute Position der Pivot-Elemente angeben, Aspose.Cells API hat einige neue Eigenschaften und eine Methode zum Erreichen dieser Benutzeranforderung bereitgestellt.
- HinzugefügtPivotItem.setPosition() Eigenschaft, die verwendet werden kann, um den Positionsindex in allen PivotItems unabhängig vom übergeordneten Knoten anzugeben. HinzugefügtPivotItem.setPositionInSameParentNode() Eigenschaft, die verwendet werden kann, um den Positionsindex in den PivotItems unter demselben übergeordneten Knoten anzugeben.
- HinzugefügtPivotItem.move(int count, boolean isSameParent)-Methode, um das Element basierend auf dem Zählwert nach oben oder unten zu verschieben, wobei die Anzahl die Anzahl der Positionen ist, um die das PivotItem nach oben oder unten verschoben werden soll. Wenn der Zählwert kleiner als null ist, wird das Element nach oben verschoben, während, wenn der Zählwert größer als null ist, das PivotItem nach unten verschoben wird. Der isSameParent-Parameter vom booleschen Typ gibt an, ob der Verschiebevorgang im selben übergeordneten Knoten ausgeführt werden muss oder nicht.
- Veraltet diePivotItem.move(int count) Methode, daher wird empfohlen, die neu hinzugefügte Methode zu verwendenPivotItem.move(int count, boolean isSameParent) stattdessen.
Bitte beachten Sie, dass ein Anruf erforderlich istPivotTable.refreshData undPivotTable.calculateData Methoden vor der VerwendungPivotItem.setPosition(), PivotItem.setPositionInSameParentNode() Eigenschaften undPivotItem.move(int count, boolean isSameParent) Methode.
Beispielcode
Der folgende Beispielcode erstellt eine Pivot-Tabelle und gibt dann die Positionen der Pivot-Elemente in demselben übergeordneten Knoten an.
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"); |