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.
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