Festlegen 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 der Benutzeranforderungen offengelegt.
- HinzugefügtPivotItem.Position Eigenschaft, die verwendet werden kann, um den Positionsindex in allen PivotItems unabhängig vom übergeordneten Knoten anzugeben. HinzugefügtPivotItem.PositionInSameParentNode Eigenschaft, die verwendet werden kann, um den Positionsindex in den PivotItems unter demselben übergeordneten Knoten anzugeben.
- HinzugefügtPivotItem.Move(int count, bool isSameParent)-Methode, um das Element basierend auf dem count-Wert nach oben oder unten zu verschieben, wobei count die Nummer der Position ist, um das PivotItem nach oben oder unten zu verschieben. Wenn der Zählwert kleiner als null ist, wird das Element nach oben verschoben, während das PivotItem nach unten verschoben wird, wenn der Zählwert größer als null ist. 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, bool isSameParent) stattdessen.
Der folgende Beispielcode erstellt eine Pivot-Tabelle und gibt dann die Positionen der Pivot-Elemente in demselben übergeordneten Knoten an. Sie können die herunterladenQuelle Excel undExcel ausgeben Dateien für Ihre Referenz. Wenn Sie die Excel-Ausgabedatei öffnen, sehen Sie, dass sich das Pivot-Element „4H12“ an Position 0 im übergeordneten Element „K11“ und „DIF400“ an Position 3 befindet. Ebenso befindet sich CA32 an Position 1 und AAA3 an Position 2
This file contains hidden or 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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
Workbook wb = new Workbook(dataDir + "source.xlsx"); | |
Worksheet wsPivot = wb.Worksheets.Add("pvtNew Hardware"); | |
Worksheet wsData = wb.Worksheets["New Hardware - Yearly"]; | |
// Get the pivottables collection for the pivot sheet | |
PivotTableCollection pivotTables = wsPivot.PivotTables; | |
// Add PivotTable to the worksheet | |
int index = pivotTables.Add("='New Hardware - Yearly'!A1:D621", "A3", "HWCounts_PivotTable"); | |
// Get the PivotTable object | |
PivotTable pvtTable = pivotTables[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.RowFields["Vendor"]; | |
pivotField.SetSubtotals(PivotFieldSubtotalType.None, true); | |
// Turn off grand total | |
pvtTable.ColumnGrand = 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.RowFields["Item"].PivotItems["4H12"].PositionInSameParentNode = 0; | |
pvtTable.RowFields["Item"].PivotItems["DIF400"].PositionInSameParentNode = 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.RowFields["Item"].PivotItems["CA32"].PositionInSameParentNode = 1; | |
pvtTable.RowFields["Item"].PivotItems["AAA3"].PositionInSameParentNode = 2; | |
// Save file | |
wb.Save(dataDir + "output_out.xlsx"); |
Bitte beachten Sie, dass die Methoden PivotTable.RefreshData und PivotTable.CalculateData vor der Verwendung aufgerufen werden müssenPivotItem.Position, PivotItem.PositionInSameParentNode Eigenschaften undPivotItem.Move(int count, bool isSameParent) Methode.