Manipuler le tableau croisé dynamique

Scénarios d’utilisation possibles

En plus de créer de nouveaux tableaux croisés dynamiques, vous pouvez manipuler les tableaux croisés dynamiques neufs et existants. Vous pouvez modifier les données dans la plage source du tableau croisé dynamique, puis rafraîchir, calculer et obtenir les nouvelles valeurs des cellules du tableau croisé dynamique. Veuillez utiliser les méthodes PivotTable.RefreshData() et PivotTable.CalculateData() après avoir modifié les valeurs dans la plage source du tableau croisé dynamique pour rafraîchir le tableau croisé dynamique.

Manipuler le tableau croisé dynamique

Le code d’exemple suivant charge le fichier Excel exemple et accède au tableau croisé dynamique existant dans sa première feuille de calcul. Il modifie la valeur de la cellule B3 qui se trouve à l’intérieur de la plage source du tableau croisé dynamique, puis rafraîchit le tableau croisé dynamique. Avant de rafraîchir le tableau croisé dynamique, il accède à la valeur de la cellule du tableau croisé dynamique H8 qui est de 15 et après le rafraîchissement du tableau croisé dynamique, sa valeur change à 6. Veuillez consulter le fichier Excel de sortie généré avec ce code et la capture d’écran montrant l’effet du code d’exemple sur le fichier Excel exemple. Veuillez également consulter la sortie de la console ci-dessous qui montre la valeur de la cellule du tableau croisé dynamique H8 avant et après le rafraîchissement du tableau croisé dynamique.

todo:image_alt_text

Code d’exemple

Aspose::Cells::Startup();
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Source directory path
U16String dirPath(u"..\\Data\\PivotTables\\");
//Output directory path
U16String outPath(u"..\\Data\\Output\\");
//Path of input excel file
U16String sampleManipulatePivotTable = dirPath + u"sampleManipulatePivotTable.xlsx";
//Path of output excel file
U16String outputManipulatePivotTable = outPath + u"outputManipulatePivotTable.xlsx";
//Load the sample excel file
Workbook wb(sampleManipulatePivotTable);
//Access first worksheet
Worksheet ws = wb.GetWorksheets().Get(0);
//Change value of cell B3 which is inside the source data of pivot table
ws.GetCells().Get(u"B3").PutValue(u"Cup");
//Get the value of cell H8 before refreshing pivot table
U16String val = ws.GetCells().Get(u"H8").GetStringValue();
std::cout << "Before refreshing Pivot Table value of cell H8: " << val.ToUtf8() << std::endl;
//Access pivot table, refresh and calculate it
PivotTable pt = ws.GetPivotTables().Get(0);
pt.RefreshData();
pt.CalculateData();
//Get the value of cell H8 after refreshing pivot table
val = ws.GetCells().Get(u"H8").GetStringValue();
std::cout << "After refreshing Pivot Table value of cell H8: " << val.ToUtf8() << std::endl;
//Save the output excel file
wb.Save(outputManipulatePivotTable);
Aspose::Cells::Cleanup();

Sortie console

Voici la sortie de la console du code d’exemple ci-dessus lorsqu’il est exécuté avec le fichier Excel exemple fourni.

 Before refreshing Pivot Table value of cell H8: 15

After refreshing Pivot Table value of cell H8: 6