Formatieren der Pivot Tabelle

Aussehen der Pivot-Tabelle

Wie man eine Pivot-Tabelle erstellt zeigt, wie man eine einfache Pivot-Tabelle erstellt. Dieser Artikel geht weiter und erörtert, wie das Erscheinungsbild einer Pivot-Tabelle durch das Festlegen von Eigenschaften angepasst werden kann.

Einstellen der Pivot-Tabellenformatoptionen

Die Klasse PivotTable ermöglicht das Einstellen verschiedener Formatierungsoptionen für eine Pivot-Tabelle.

Einstellen der AutoFormat- und PivotTableStyle-Typen

Das folgende Codebeispiel veranschaulicht, wie man den Autoformat-Typ und den Pivot-Tabellenstil-Typ unter Verwendung der Eigenschaften AutoFormatType und PivotTableStyleType festlegt.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(SetAutoFormatandPivotTableStyleTypes.class) + "PivotTables/";
// Load a template file
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
int pivotindex = 0;
// Get the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(pivotindex);
// Accessing the PivotTable
PivotTable pivotTable = worksheet.getPivotTables().get(pivotindex);
//Setting the PivotTable report is automatically formatted for Excel 2003 formats
pivotTable.setAutoFormat(true);
//Setting the PivotTable atuoformat type.
pivotTable.setAutoFormatType(PivotTableAutoFormatType.CLASSIC);
//Setting the PivotTable's Styles for Excel 2007/2010 formats e.g XLSX.
pivotTable.setPivotTableStyleType(PivotTableStyleType.PIVOT_TABLE_STYLE_LIGHT_1);

Einstellen von Formatoptionen

Das folgende Codebeispiel zeigt, wie eine Reihe von Formatierungsoptionen für einen Pivot-Tabellenbericht eingestellt werden können, einschließlich dem Hinzufügen von Gesamtsummen für Zeilen und Spalten.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(SettingFormatOptions.class) + "PivotTables/";
// Load a template file
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
// Get the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
PivotTable pivotTable = worksheet.getPivotTables().get(0);
// Dragging the third field to the data area.
pivotTable.addFieldToArea(PivotFieldType.DATA, 2);
// Show grand totals for rows.
pivotTable.setRowGrand(true);
// Show grand totals for columns.
pivotTable.setColumnGrand(true);
// Display a custom string in cells that contain null values.
pivotTable.setDisplayNullString(true);
pivotTable.setNullString("null");
// Setting the layout
pivotTable.setPageFieldOrder(PrintOrderType.DOWN_THEN_OVER);

Formatierungsoptionen für PivotFields einstellen

Neben der Steuerung der Formatierung der Gesamtpivottabelle ermöglicht Aspose.Cells for Java eine feinabgestimmte Steuerung der Formatierung für Zeilenfelder, Spaltenfelder und Seitenelemente.

Formatierung für Zeilen-, Spalten- und Seitenelemente einstellen

Das folgende Codebeispiel zeigt, wie auf Zeilenfelder zugegriffen, eine bestimmte Zeile festgelegt, Teilergebnisse festgelegt, eine automatische Sortierung angewendet und die autoShow-Option verwendet werden.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(SetRowColumnPageFieldsFormat.class) + "PivotTables/";
// Load a template file
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
// Get the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
PivotTable pivotTable = worksheet.getPivotTables().get(0);
// 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.setAutoSort(true);
// Setting the field auto sort ascend.
pivotField.setAscendSort(true);
// Setting the field auto sort using the field itself.
pivotField.setAutoSortField(-1);
// Setting autoShow options. Setting the field auto show.
pivotField.setAutoShow(true);
// Setting the field auto show ascend.
pivotField.setAscendShow(false);
// Setting the auto show using field(data field).
pivotField.setAutoShowField(0);

Formatierungsoptionen für Datenfelder einstellen

Die folgenden Codezeilen veranschaulichen, wie Datenfelder formatiert werden können.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(SettingDataFieldFormat.class) + "PivotTables/";
// Load a template file
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
// Get the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
PivotTable pivotTable = worksheet.getPivotTables().get(0);
// 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.setDataDisplayFormat(PivotFieldDataDisplayFormat.PERCENTAGE_OF);
// Setting the base field.
pivotField.setBaseFieldIndex(1);
// Setting the base item.
pivotField.setBaseItemPosition(PivotItemPosition.NEXT);
// Setting number format
pivotField.setNumber(10);

Ein Schnellformat für eine Pivot-Tabelle bearbeiten

Die folgenden Codebeispiele zeigen, wie das Schnellformat, das auf eine Pivot-Tabelle angewendet wird, geändert werden kann.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ModifyPivotTableQuickStyle.class) + "PivotTables/";
// Open the template file containing the pivot table.
Workbook wb = new Workbook(dataDir + "sample1.xlsx");
// Add Pivot Table style
Style style1 = wb.createStyle();
com.aspose.cells.Font font1 = style1.getFont();
font1.setColor(Color.getRed());
Style style2 = wb.createStyle();
com.aspose.cells.Font font2 = style2.getFont();
font2.setColor(Color.getBlue());
int i = wb.getWorksheets().getTableStyles().addPivotTableStyle("tt");
// Get and Set the table style for different categories
TableStyle ts = wb.getWorksheets().getTableStyles().get(i);
int index = ts.getTableStyleElements().add(TableStyleElementType.FIRST_COLUMN);
TableStyleElement e = ts.getTableStyleElements().get(index);
e.setElementStyle(style1);
index = ts.getTableStyleElements().add(TableStyleElementType.GRAND_TOTAL_ROW);
e = ts.getTableStyleElements().get(index);
e.setElementStyle(style2);
// Set Pivot Table style name
PivotTable pt = wb.getWorksheets().get(0).getPivotTables().get(0);
pt.setPivotTableStyleName("tt");
// Save the file.
wb.save(dataDir + "ModifyPivotTableQuickStyle_out.xlsx");

Löschen von Pivot-Feldern

PivotFieldCollection hat eine Methode namens clear(), die die Pivot-Felder löscht. Verwenden Sie sie, um zum Beispiel Seiten-, Spalten-, Zeilen- oder Daten-Pivot-Felder zu löschen. Das unten stehende Code-Beispiel zeigt, wie alle Pivot-Felder im Datenbereich gelöscht werden können.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ClearPivotFields.class) + "PivotTables/";
// Load a template file
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
// 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, "Betrag Netto FW");
// Set the refresh data flag on
pivotTable.setRefreshDataFlag(false);
// Refresh and calculate the pivot table data
pivotTable.refreshData();
pivotTable.calculateData();
// Save the Excel file
workbook.save(dataDir + "ClearPivotFields_out.xlsx");

Konsolidierungsfunktion

Anwendung von ConsolidationFunction auf Datenfelder des Pivot-Tabellen

Aspose.Cells kann verwendet werden, um die Konsolidierungsfunktion auf Datenfelder (oder Wertefelder) des Pivot-Tables anzuwenden. In Microsoft Excel können Sie mit der rechten Maustaste auf das Wertefeld klicken und dann die Option Feldwerteinstellungen… auswählen und dann den Tab Werte zusammenfassen nach wählen. Von dort aus können Sie eine beliebige Konsolidierungsfunktion Ihrer Wahl wie Summe, Anzahl, Durchschnitt, Max, Min, Produkt, Unterschiedliche Anzahl usw. auswählen.

Aspose.Cells bietet die Aufzählung ConsolidationFunction, um die folgenden Konsolidierungsfunktionen zu unterstützen.

Der folgende Code wendet die Konsolidierungsfunktion Durchschnitt auf das erste Datenfeld (oder Wertfeld) und die Konsolidierungsfunktion Unterschiedliche Anzahl auf das zweite Datenfeld (oder Wertfeld) an.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ConsolidationFunctions.class) + "PivotTables/";
// Create workbook from source excel file
Workbook workbook = new Workbook(dataDir + "sample1.xlsx");
// Access the first worksheet of the workbook
Worksheet worksheet = workbook.getWorksheets().get(0);
// Access the first pivot table of the worksheet
PivotTable pivotTable = worksheet.getPivotTables().get(0);
// Apply Average consolidation function to first data field
pivotTable.getDataFields().get(0).setFunction(ConsolidationFunction.AVERAGE);
// Apply DistinctCount consolidation function to second data field
pivotTable.getDataFields().get(1).setFunction(ConsolidationFunction.DISTINCT_COUNT);
// Calculate the data to make changes affect
pivotTable.calculateData();
// Save the workbook
workbook.save(dataDir + "ConsolidationFunctions_out.xlsx");