Pivot Tabellen ordnen Daten neu an, um sie sinnvoll darzustellen. Sie bieten verschiedene Sortieroptionen und liefern Summen, Durchschnittswerte oder andere Statistiken, indem sie Daten zusammenfassen. Es ist ein unverzichtbares Werkzeug für die Datenanalyse und ein grundlegender Bestandteil von MS Excel. Möglicherweise befinden Sie sich in Szenarien, in denen Sie Pivot Tabellen programmgesteuert erstellen und bearbeiten müssen. Zu diesem Zweck lernen Sie in diesem Artikel, wie Sie mit Pivot Tabellen in Excel Dateien mit C++ arbeiten.

C++-API zum Arbeiten mit Pivot Tabellen in Excel Dateien

Aspose.Cells for C++ ist eine native C++ Bibliothek, mit der Sie Excel Dateien erstellen, lesen und aktualisieren können, ohne dass Microsoft Excel installiert sein muss. Die API unterstützt auch das Arbeiten mit Pivot Tabellen in Excel Dateien. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.

PM> Install-Package Aspose.Cells.Cpp

Erstellen Sie eine Pivot Tabelle in einer Excel Datei mit C++

Im folgenden Beispiel erstellen wir eine neue Excel Datei, fügen Beispieldaten darin ein und erstellen eine Pivot Tabelle. Die in diesem Beispiel generierte Datei wird als Quelldatei für andere Beispiele verwendet. Im Folgenden sind die Schritte zum Erstellen einer Pivot Tabelle in einer Excel Datei aufgeführt.

Der folgende Beispielcode zeigt, wie Sie mit C++ eine Pivot Tabelle in einer Excel Datei erstellen.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Erstellen Sie eine Instanz der IWorkbook Klasse
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Greifen Sie auf das erste Arbeitsblatt zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Fügen Sie Quelldaten für die Pivot Tabelle hinzu
intrusive_ptr<String> str = new String("Fruit");
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(str);
str = new String("Quantity");
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(str);
str = new String("Price");
worksheet->GetICells()->GetObjectByIndex(new String("C1"))->PutValue(str);
str = new String("Apple");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);
str = new String("Orange");
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(str);
str = new String("Mango");
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(str);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B4"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("C2"))->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(new String("C3"))->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(new String("C4"))->PutValue(4);

// Pivot Tabelle hinzufügen
int idx = worksheet->GetIPivotTables()->Add(new String("A1:C4"), new String("E5"), new String("MyPivotTable"));

// Greifen Sie auf die erstellte Pivot Tabelle zu
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(idx);

// Bearbeiten Sie Zeilen, Spalten und Datenfelder von Pivot Tabellen
pivotTable->AddFieldToArea(PivotFieldType_Row, pivotTable->GetIBaseFields()->GetObjectByIndex(0));
pivotTable->AddFieldToArea(PivotFieldType_Data, pivotTable->GetIBaseFields()->GetObjectByIndex(1));
pivotTable->AddFieldToArea(PivotFieldType_Data, pivotTable->GetIBaseFields()->GetObjectByIndex(2));
pivotTable->AddFieldToArea(PivotFieldType_Column, pivotTable->GetIDataField());

// Legen Sie den Pivot Tabellenstil fest
pivotTable->SetPivotTableStyleType(PivotTableStyleType_PivotTableStyleMedium9);

// Speichern Sie die ausgegebene Excel Datei
workbook->Save(outDir->StringAppend(new String("outputCreatePivotTable.xlsx")));
Bild der durch den Beispielcode erstellten Pivot Tabelle

Bild der durch den Beispielcode erstellten Pivot Tabelle

Pivot Tabelle in einer Excel Datei mit C++ sortieren

Im folgenden Beispiel sortieren wir die erste Spalte der Pivot Tabelle in absteigender Reihenfolge. Im Folgenden sind die Schritte zum Sortieren von Daten in einer Pivot Tabelle aufgeführt.

Der folgende Beispielcode zeigt, wie eine Pivot Tabelle in einer Excel Datei mit C++ sortiert wird.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Pfad der Eingabe-Excel Datei
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Pfad der ausgegebenen Excel Datei
StringPtr outputSortedPivotTable = outDir->StringAppend(new String("outputSortedPivotTable.xlsx"));

// Laden Sie die Beispiel-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Greifen Sie auf das erste Arbeitsblatt zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Greifen Sie auf die Pivot Tabelle zu
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);

// Legen Sie die Sortierung der Pivot Tabelle fest
pivotTable->AddFieldToArea(PivotFieldType_Row, 0);
intrusive_ptr<IPivotField> pivotField = pivotTable->GetIRowFields()->GetObjectByIndex(0);
pivotField->SetAutoSort(true);
pivotField->SetAscendSort(false);

// Aktualisieren und berechnen Sie die Daten in der Pivot Tabelle.
pivotTable->RefreshData();
pivotTable->CalculateData();

// Speichern Sie die ausgegebene Excel Datei
workbook->Save(outputSortedPivotTable);
Bild der sortierten Pivot Tabelle, die vom Beispielcode generiert wird

Bild der sortierten Pivot Tabelle, die vom Beispielcode generiert wird

Zeilen in einer Pivot Tabelle mit C++ ausblenden

Mit Aspose.Cells for C++ API können Sie auch die Zeilen in einer Pivot Tabelle ausblenden. Im folgenden Beispiel blenden wir die Zeile mit der Zeilenbeschriftung „Orange“ aus. Im Folgenden sind die Schritte zum Ausblenden von Zeilen in einer Pivot Tabelle aufgeführt.

Der folgende Beispielcode zeigt, wie Zeilen in einer Pivot Tabelle mit C++ ausgeblendet werden.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Pfad der Eingabe-Excel Datei
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Pfad der ausgegebenen Excel Datei
StringPtr outputHiddenRowPivotTable = outDir->StringAppend(new String("outputHiddenRowPivotTable.xlsx"));

// Laden Sie die Beispiel-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Greifen Sie auf das erste Arbeitsblatt zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Greifen Sie auf die Pivot Tabelle zu
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);

// Rufen Sie den Körperbereich der Pivot Tabelle ab
intrusive_ptr<ICellArea> dataBodyRange = pivotTable->GetIDataBodyRange();

// Startzeile der Pivot Tabelle
int currentRow = 5;

// Endzeile der Pivot Tabelle
int rowsUsed = dataBodyRange->GetendRow();

// Iterieren Sie durch die Zeilen, vergleichen Sie den Zellenwert und blenden Sie die Zeilen aus.
for (int i = currentRow; i < rowsUsed; i++) {
	intrusive_ptr<ICell> cell = worksheet->GetICells()->GetICell(i, 4);
	if (strcmp(cell->GetStringValue()->charValue(), "Orange") == 0) {
		worksheet->GetICells()->HideRow(i);
	}
}

// Aktualisieren und berechnen Sie die Daten in der Pivot Tabelle.
pivotTable->RefreshData();
pivotTable->CalculateData();

// Speichern Sie die ausgegebene Excel Datei
workbook->Save(outputHiddenRowPivotTable);
Bild der Pivot Tabelle mit einer ausgeblendeten Zeile

Bild der Pivot Tabelle mit einer ausgeblendeten Zeile

Bearbeiten Sie Pivot Tabellendaten mit C++

Sie können auch die Daten einer vorhandenen Pivot Tabelle mit Aspose.Cells für die C++-API bearbeiten. Im folgenden Beispiel ersetzen wir den Text „Apple“ in Zelle „A2“ durch „Orange“ und geben die Änderung in der Pivot Tabelle wieder. Im Folgenden sind die Schritte zum Bearbeiten von Pivot Tabellendaten aufgeführt.

Der folgende Beispielcode zeigt, wie die Daten einer Pivot Tabelle mit C++ aktualisiert werden.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Pfad der Eingabe-Excel Datei
StringPtr samplePivotTable = srcDir->StringAppend(new String("SamplePivotTable.xlsx"));

// Pfad der ausgegebenen Excel Datei
StringPtr outputManipulatePivotTable = outDir->StringAppend(new String("outputManipulatePivotTable.xlsx"));

// Laden Sie die Beispiel-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(samplePivotTable);

// Greifen Sie auf das erste Arbeitsblatt zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Ändern Sie den Wert der Zelle A2, die sich in den Quelldaten der Pivot Tabelle befindet
intrusive_ptr<String> str = new String("Orange");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);

// Greifen Sie auf die Pivot Tabelle zu, aktualisieren und berechnen Sie sie
intrusive_ptr<IPivotTable> pivotTable = worksheet->GetIPivotTables()->GetObjectByIndex(0);
pivotTable->RefreshData();
pivotTable->CalculateData();

// Speichern Sie die ausgegebene Excel Datei
workbook->Save(outputManipulatePivotTable);
Pivot Tabelle mit den aktualisierten Daten

Pivot Tabelle mit den aktualisierten Daten

Holen Sie sich eine kostenlose Lizenz

Um die API ohne Evaluierungseinschränkungen zu testen, können Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit Pivot Tabellen in Excel Dateien mit C++ arbeiten. Insbesondere haben Sie gelernt, wie Sie eine Pivot Tabelle erstellen und die Daten in einer Pivot Tabelle mit C++ sortieren, ausblenden und aktualisieren. Aspose.Cells for C++ ist eine umfangreiche API, die eine Reihe zusätzlicher Funktionen für die Arbeit mit Excel Dateien bietet. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch