Manipuler le tableau croisé dynamique

Scénarios d’utilisation possibles

Outre la création de nouveaux tableaux croisés dynamiques, vous pouvez manipuler les tableaux croisés dynamiques nouveaux et existants. Vous pouvez modifier les données dans la plage source du tableau croisé dynamique, puis les actualiser et les calculer et atteindre les nouvelles valeurs des cellules du tableau croisé dynamique. Veuillez utiliserIPivotTable.RefreshData() etIPivotTable.CalculateData()méthodes après avoir modifié les valeurs dans la plage source du tableau croisé dynamique pour actualiser le tableau croisé dynamique.

Manipuler le tableau croisé dynamique

L’exemple de code suivant charge leexemple de fichier excel et accède au tableau croisé dynamique existant à l’intérieur de sa première feuille de calcul. Il modifie la valeur de la cellule B3 qui se trouve dans la plage source du tableau croisé dynamique, puis actualise le tableau croisé dynamique. Avant d’actualiser le tableau croisé dynamique, il accède à la valeur de la cellule du tableau croisé dynamique H8 qui est 15 et après avoir actualisé le tableau croisé dynamique, sa valeur passe à 6. Veuillez consulter lefichier excel de sortiegénéré avec ce code et la capture d’écran montrant l’effet de l’exemple de code sur l’exemple de fichier Excel. Veuillez également consulter la sortie de la console ci-dessous qui indique la valeur de la cellule du tableau croisé dynamique H8 avant et après l’actualisation du tableau croisé dynamique.

tâche : image_autre_texte

Exemple de code

//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Source directory path
StringPtr dirPath = new String("..\\Data\\PivotTables\\");
//Output directory path
StringPtr outPath = new String("..\\Data\\Output\\");
//Path of input excel file
StringPtr sampleManipulatePivotTable = dirPath->StringAppend(new String("sampleManipulatePivotTable.xlsx"));
//Path of output excel file
StringPtr outputManipulatePivotTable = outPath->StringAppend(new String("outputManipulatePivotTable.xlsx"));
//Load the sample excel file
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook(sampleManipulatePivotTable);
//Access first worksheet
intrusive_ptr<IWorksheet> ws = wb->GetIWorksheets()->GetObjectByIndex(0);
//Change value of cell B3 which is inside the source data of pivot table
intrusive_ptr<String> str = new String("Cup");
ws->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(str);
//Get the value of cell H8 before refreshing pivot table
intrusive_ptr<String> val = ws->GetICells()->GetObjectByIndex(new String("H8"))->GetStringValue();
StringPtr str1 = new String(L"Before refreshing Pivot Table value of cell H8: ");
Console::WriteLine(str1->StringAppend(val));
//Access pivot table, refresh and calculate it
intrusive_ptr<IPivotTable> pt = ws->GetIPivotTables()->GetObjectByIndex(0);
pt->RefreshData();
pt->CalculateData();
//Get the value of cell H8 after refreshing pivot table
val = ws->GetICells()->GetObjectByIndex(new String("H8"))->GetStringValue();
StringPtr str2 = new String(L"After refreshing Pivot Table value of cell H8: ");
Console::WriteLine(str2->StringAppend(val));
//Save the output excel file
wb->Save(outputManipulatePivotTable);

Sortie console

Vous trouverez ci-dessous la sortie de la console de l’exemple de code ci-dessus lorsqu’il est exécuté avec leexemple de fichier excel.

 Before refreshing Pivot Table value of cell H8: 15

After refreshing Pivot Table value of cell H8: 6