Pivot Tabellen mit C++ formatieren
Aussehen der Pivot-Tabelle
Wie man eine Pivot-Tabelle erstellt, erklärt, wie man eine einfache Pivot-Tabelle erstellt. Dieser Artikel beschreibt, wie man das Aussehen einer Pivot-Tabelle anpasst, indem man verschiedene Eigenschaften einstellt:
- Optionen zum Formatieren von Pivot-Tabellen
- Optionen zum Formatieren von Pivot-Feldern
- Optionen zum Formatieren von Datenfeldern
Einstellen der Pivot-Tabellenformatoptionen
Die Klasse PivotTable steuert die gesamte Pivot-Tabelle und kann auf verschiedene Arten formatiert werden.
Einstellen des AutoFormat-Typs
Microsoft Excel bietet eine Reihe vordefinierter Berichtformate. Aspose.Cells unterstützt diese Formatierungsoptionen ebenfalls. Um darauf zuzugreifen:
- Setzen Sie PivotTable.IsAutoFormat auf true.
- Weisen Sie eine Formatierungsoption aus der PivotTableAutoFormatType-Aufzählung zu.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"Book1.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"output.xls";
// Load a template file
Workbook workbook(inputFilePath);
int pivotindex = 0;
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Accessing the PivotTable
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotindex);
// Setting the PivotTable report is automatically formatted
pivotTable.SetIsAutoFormat(true);
// Setting the PivotTable autoformat type
pivotTable.SetAutoFormatType(PivotTableAutoFormatType::Report5);
// Saving the Excel file
workbook.Save(outputFilePath);
std::cout << "PivotTable formatted successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Einstellen von Formatoptionen
Das unten stehende Codebeispiel zeigt, wie man die Pivot-Tabelle formatiert, um Summen für Zeilen und Spalten anzuzeigen, und die Reihenfolge der Felder im Bericht festlegt. Außerdem zeigt es, wie man einen benutzerdefinierten String für Nullwerte setzt.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xls";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xls";
// Load a template file
Workbook workbook(inputFilePath);
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotindex);
// Setting the PivotTable report shows grand totals for rows.
pivotTable.SetShowRowGrandTotals(true);
// Setting the PivotTable report shows grand totals for columns.
pivotTable.SetShowColumnGrandTotals(true);
// Setting the PivotTable report displays a custom string in cells that contain null values.
pivotTable.SetDisplayNullString(true);
pivotTable.SetNullString(u"null");
// Setting the PivotTable report's layout
pivotTable.SetPageFieldOrder(PrintOrderType::DownThenOver);
// Saving the Excel file
workbook.Save(outputFilePath);
std::cout << "PivotTable settings applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Manuelles Anpassen von Aussehen und Anmutung
Um zu steuern, wie der Pivot-Tabellenbericht manuell aussieht, anstatt vordefinierte Berichtformate zu verwenden, nutzen Sie die Methoden PivotTable.Format() und PivotTable.FormatAll(). Erstellen Sie ein Style-Objekt für Ihr gewünschtes Format, beispielsweise:
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"Book1.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"output.xls";
// Load a template file
Workbook workbook(inputFilePath);
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
auto pivot = worksheet.GetPivotTables().Get(0);
// Set pivot table style
pivot.SetPivotTableStyleType(PivotTableStyleType::PivotTableStyleDark1);
// Create a new style
Style style = workbook.CreateStyle();
style.GetFont().SetName(u"Arial Black");
style.SetForegroundColor(Color::Yellow());
style.SetPattern(BackgroundType::Solid);
// Apply style to pivot table
pivot.FormatAll(style);
// Save the Excel file
workbook.Save(outputFilePath);
std::cout << "Pivot table style applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Einstellen von Formatoptionen für Pivot-Felder
Die Klasse PivotField stellt ein Feld in einer Pivot-Tabelle dar und kann auf verschiedene Arten formatiert werden. Das unten stehende Codebeispiel zeigt, wie:
- Auf Zeilenfelder zugreifen.
- Untergesamtsummen einstellen.
- Autosortierung einstellen.
- Autoshow einstellen.
Formatieren von Zeilen/Spalten/Seitenfeldern
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Load a template file
Workbook workbook(srcDir + u"Book1.xls");
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotindex);
// Setting the PivotTable report shows grand totals for rows.
pivotTable.SetShowRowGrandTotals(true);
// Accessing the row fields.
PivotFieldCollection pivotFields = pivotTable.GetRowFields();
// Accessing the first row field in the row fields.
PivotField pivotField = pivotFields.Get(0);
// Setting Subtotals.
pivotField.SetSubtotals(PivotFieldSubtotalType::Sum, true);
pivotField.SetSubtotals(PivotFieldSubtotalType::Count, true);
// Setting autosort options.
// Setting the field auto sort.
pivotField.SetIsAutoSort(true);
// Setting the field auto sort ascend.
pivotField.SetIsAscendSort(true);
// Setting the field auto sort using the field itself.
pivotField.SetAutoSortField(-5);
// Setting autoShow options.
// Setting the field auto show.
pivotField.SetIsAutoShow(true);
// Setting the field auto show ascend.
pivotField.SetIsAscendShow(false);
// Setting the auto show using field(data field).
pivotField.SetAutoShowField(0);
// Saving the Excel file
workbook.Save(outDir + u"output.xls");
std::cout << "PivotTable settings applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Formatierungsoptionen für Datenfelder einstellen
Das unten stehende Codebeispiel zeigt, wie man Anzeigeformate und Zahlenformat für Datenfelder einstellt.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Load a template file
U16String inputFilePath = srcDir + u"Book1.xls";
Workbook workbook(inputFilePath);
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotindex);
// Accessing the data fields
PivotFieldCollection pivotFields = pivotTable.GetDataFields();
// Accessing the first data field in the data fields
PivotField pivotField = pivotFields.Get(0);
// Setting data display format
pivotField.GetShowValuesSetting().SetCalculationType(PivotFieldDataDisplayFormat::PercentageOf);
// Setting the base field
pivotField.GetShowValuesSetting().SetBaseFieldIndex(1);
// Setting the base item
pivotField.GetShowValuesSetting().SetBaseItemPositionType(PivotItemPositionType::Next);
// Setting number format
pivotField.SetNumber(10);
// Saving the Excel file
U16String outputFilePath = outDir + u"output.xls";
workbook.Save(outputFilePath);
std::cout << "Pivot table settings applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Löschen von Pivot-Feldern
Die Methode Clear() der PivotFieldCollection-Klasse ermöglicht es Ihnen, Pivot-Felder zu löschen. Verwenden Sie sie, wenn Sie alle Pivot-Felder in den Bereichen wie Seite, Spalte, Zeile oder Daten löschen möchten. Das unten stehende Codebeispiel zeigt, wie man alle Pivot-Felder in einem Datenbereich löscht.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"Book1.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"output.xls";
// Load a template file
Workbook workbook(inputFilePath);
// Get the first worksheet
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Get the pivot tables in the sheet
PivotTableCollection pivotTables = sheet.GetPivotTables();
// Get the first PivotTable
PivotTable pivotTable = pivotTables.Get(0);
// Clear all the data fields
pivotTable.GetDataFields().Clear();
// Add new data field
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Betrag Netto FW");
// Set the refresh data flag off
pivotTable.SetRefreshDataFlag(false);
// Refresh and calculate the pivot table data
pivotTable.RefreshData();
pivotTable.CalculateData();
// Saving the Excel file
workbook.Save(outputFilePath);
std::cout << "Pivot table updated and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}