Spécification de la position absolue de l'élément pivot
Contents
[
Hide
]
Parfois, l’utilisateur a besoin de spécifier la position absolue des éléments de pivot, Aspose.Cells API a exposé quelques nouvelles propriétés et une méthode pour répondre à cette exigence de l’utilisateur.
- AjoutéePivotItem.setPosition() propriété qui peut être utilisée pour spécifier l’index de position dans tous les PivotItems quel que soit le nœud parent. AjoutéePivotItem.setPositionInSameParentNode() propriété qui peut être utilisée pour spécifier l’index de position dans les PivotItems sous le même nœud parent.
- Ajoutée[PivotItem.move(int count, boolean isSameParent)](https://reference.aspose.com/cells/java/com.aspose.cells/pivotitem#move(int,%20boolean)afin de déplacer l’élément vers le haut ou vers le bas en fonction de la valeur du nombre, où le nombre est le nombre de positions pour déplacer le PivotItem vers le haut ou vers le bas. Si la valeur de comptage est inférieure à zéro, l’élément sera déplacé vers le haut alors que si la valeur de comptage est supérieure à zéro, le PivotItem se déplacera vers le bas, paramètre de type booléen isSameParent spécifiant si l’opération de déplacement doit être effectuée dans le même nœud parent ou ne pas.
- Obsolète lePivotItem.move(int count) méthode, par conséquent, il est suggéré d’utiliser la méthode nouvellement ajoutéePivotItem.move(int count, boolean isSameParent) au lieu.
Attention, il faut téléphoner auPivotTable.refreshDataPivotTable.refreshData etTableau croisé dynamique.calculateData méthodes avant d’utiliserPivotItem.setPosition(), PivotItem.setPositionInSameParentNode() propriétés etPivotItem.move(int count, boolean isSameParent) méthode.
Exemple de code
L’exemple de code suivant crée un tableau croisé dynamique, puis il spécifie les positions des éléments de pivot dans le même nœud parent.
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"); |