Tri personnalisé dans la table pivotante

Comment définir un tri personnalisé dans un tableau croisé dynamique en utilisant la bibliothèque Aspose.Cells for Node.js via C++

En utilisant l’API Aspose.Cells for Node.js via C++, vous pouvez trier les tableaux croisés dynamiques sur les valeurs de champ. Le code suivant charge un fichier excel exemple et ajoute trois tableaux croisés dynamiques. Le premier tableau croisé dynamique est sans tri personnalisé, le deuxième est trié sur les valeurs de champ “SeaFood” et le troisième sur les valeurs de champ “28/07/2000”.

Le fichier source d’exemple et les fichiers de sortie peuvent être téléchargés ici pour tester le code d’exemple :

Fichier Excel source

Fichier Excel de sortie

Fichier PDF de sortie

Code d’exemple

const AsposeCells = require("aspose.cells.node");
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
var sourceDir = RunExamples.Get_SourceDirectory();
var outputDir = RunExamples.Get_OutputDirectory();
var wb = new AsposeCells.Workbook(sourceDir + "SamplePivotSort.xlsx");
// Obtaining the reference of the newly added worksheet
var sheet = wb.getWorksheets().get(0);
var pivotTables = sheet.getPivotTables();
// source PivotTable
// Adding a PivotTable to the worksheet
var index = pivotTables.add("=Sheet1!A1:C10", "E3", "PivotTable2");
//Accessing the instance of the newly added PivotTable
var pivotTable = pivotTables.get(index);
// Unshowing grand totals for rows.
pivotTable.setRowGrand(false);
pivotTable.setColumnGrand(false);
// Dragging the first field to the row area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, 1);
var rowField = pivotTable.getRowFields().get(0);
rowField.setIsAutoSort(true);
rowField.setIsAscendSort(true);
// Dragging the second field to the column area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, 0);
var colField = pivotTable.getColumnFields().get(0);
colField.setNumberFormat("dd/mm/yyyy");
colField.setIsAutoSort(true);
colField.setIsAscendSort(true);
// Dragging the third field to the data area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, 2)
pivotTable.refreshData();
pivotTable.calculateData();
// end of source PivotTable
// sort the PivotTable on "SeaFood" row field values
// Adding a PivotTable to the worksheet
index = pivotTables.add("=Sheet1!A1:C10", "E10", "PivotTable2");
// Accessing the instance of the newly added PivotTable
pivotTable = pivotTables.get(index);
// Unshowing grand totals for rows.
pivotTable.setRowGrand(false);
pivotTable.setColumnGrand(false);
// Dragging the first field to the row area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, 1);
rowField = pivotTable.getRowFields().get(0);
rowField.setIsAutoSort(true);
rowField.setIsAscendSort(true);
// Dragging the second field to the column area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, 0);
colField = pivotTable.getColumnFields().get(0);
colField.setNumberFormat("dd/mm/yyyy");
colField.setIsAutoSort(true);
colField.setIsAscendSort(true);
colField.setAutoSortField(0);
//Dragging the third field to the data area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, 2)
pivotTable.refreshData();
pivotTable.calculateData();
// end of sort the PivotTable on "SeaFood" row field values
// sort the PivotTable on "28/07/2000" column field values
// Adding a PivotTable to the worksheet
index = pivotTables.add("=Sheet1!A1:C10", "E18", "PivotTable2");
// Accessing the instance of the newly added PivotTable
pivotTable = pivotTables.get(index);
// Unshowing grand totals for rows.
pivotTable.setRowGrand(false);
pivotTable.setColumnGrand(false);
// Dragging the first field to the row area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, 1);
rowField = pivotTable.getRowFields().get(0);
rowField.setIsAutoSort(true);
rowField.setIsAscendSort(true);
rowField.setAutoSortField(0);
// Dragging the second field to the column area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, 0);
colField = pivotTable.getColumnFields().get(0);
colField.setNumberFormat("dd/mm/yyyy");
colField.setIsAutoSort(true);
colField.setIsAscendSort(true);
//Dragging the third field to the data area.
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, 2)
pivotTable.refreshData();
pivotTable.calculateData();
// end of sort the PivotTable on "28/07/2000" column field values
//Saving the Excel file
wb.save(outputDir + "out_java.xlsx");
var options = new AsposeCells.PdfSaveOptions();
options.setOnePagePerSheet(true);
wb.save(outputDir + "out_java.pdf", options);