Pivot-Tabelle manipulieren

Mögliche Nutzungsszenarien

Neben dem Erstellen neuer Pivot-Tabellen können Sie die neuen und vorhandenen Pivot-Tabellen bearbeiten. Sie können die Daten im Quellbereich der Pivot-Tabelle ändern und dann aktualisieren und berechnen und die neuen Werte der Pivot-Tabellenzellen erhalten. Bitte verwendeIPivotTable.RefreshData() undIPivotTable.CalculateData()Methoden, nachdem Sie die Werte im Quellbereich der Pivot-Tabelle geändert haben, um die Pivot-Tabelle zu aktualisieren.

Pivot-Tabelle manipulieren

Der folgende Beispielcode lädt dieExcel-Beispieldatei und greift auf die vorhandene Pivot-Tabelle in ihrem ersten Arbeitsblatt zu. Es ändert den Wert der Zelle B3, die sich innerhalb des Quellbereichs der Pivot-Tabelle befindet, und aktualisiert dann die Pivot-Tabelle. Bevor es die Pivot-Tabelle aktualisiert, greift es auf den Wert der Pivot-Tabellenzelle H8 zu, der 15 ist, und nach dem Aktualisieren der Pivot-Tabelle ändert sich sein Wert auf 6. Bitte beachten Sie dieExcel-Datei ausgebengeneriert mit diesem Code und dem Screenshot, der die Auswirkung des Beispielcodes auf die Beispiel-Excel-Datei zeigt. Bitte sehen Sie sich auch die Konsolenausgabe unten an, die den Wert der Pivot-Tabellenzelle H8 vor und nach dem Aktualisieren der Pivot-Tabelle zeigt.

todo: Bild_alt_Text

Beispielcode

//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);

Konsolenausgabe

Unten sehen Sie die Konsolenausgabe des obigen Beispielcodes, wenn er mit dem bereitgestellten ausgeführt wirdExcel-Beispieldatei.

 Before refreshing Pivot Table value of cell H8: 15

After refreshing Pivot Table value of cell H8: 6