Formatera Pivot tabell

Pivottabellens utseende

Hur man skapar en pivot-tabell visade hur man skapar en enkel pivot-tabell. Den här artikeln går vidare och diskuterar hur man anpassar ett pivot-tabells utseende genom att ställa in egenskaper.

Inställning av pivottabellformatalternativ

PivotTable -klassen låter dig ange olika formateringsalternativ för en pivot-tabell.

Inställning av AutoFormat och PivotTableStyle-typer

Det följande kodexemplet illustrerar hur man ställer in autoformat-typen och pivot-tabellstil-typen med hjälp av AutoFormatType och PivotTableStyleType egenskaperna.

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

Inställning av formatalternativ

Kodexemplet nedan illustrerar hur man anger ett antal formateringsalternativ för en pivot-tabellrapport, inklusive att lägga till totaler för rader och kolumner.

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

Anger PivotFields formatalternativ

Förutom att kontrollera formateringen av den övergripande pivot-tabellen, tillåter Aspose.Cells for Java finjusterad kontroll av formateringen för radfält, kolumnfält och sidofält.

Anger format för rad-, kolumn- och sidofält

Exemplet nedan visar hur man får åtkomst till radfält, får åtkomst till en specifik rad, anger delsummer, tillämpar automatisk sortering och använder autoVisa-alternativet.

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

Anger format för datafält

De följande kodraderna illustrerar hur man formaterar datafält.

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

Ändra en Pivottabells snabbstil

Exemplen nedan visar hur man ändrar den snabba stilen som tillämpas på en pivottabell.

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

Rensa pivottabellsfält

PivotFieldCollection har en metod med namnet clear() som rensar pivotfält. Använd den för att rensa pivotfält i alla områden, till exempel sidor, kolumner, rader eller data. Kodexemplet nedan visar hur man rensar alla pivotfält i dataområdet.

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

Konsolideringsfunktion

Tillämpning av ConsolidationFunction på datavärderna i pivottabellen

Aspose.Cells kan användas för att tillämpa ConsolidationFunction på datavärderna (eller värdefälten) i pivottabellen. I Microsoft Excel kan du högerklicka på värdefältet och sedan välja alternativet Värdefältsinställningar… och sedan välja fliken Summera värden efter. Där kan du välja valfri ConsolidationFunction som Summa, Antal, Medel, Max, Min, Produkt, Distinkt antal etc.

Aspose.Cells tillhandahåller uppräkning för att stödja följande konsolideringsfunktioner.

Den följande koden tillämpar Medelvärde konsolideringsfunktionen på det första datavärdet (eller värdefältet) och Distinkt antal konsolideringsfunktionen på det andra datavärdet (eller värdefältet).

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