Группировка полей сводной таблицы
Возможные сценарии использования
Microsoft Excel позволяет группировать сводные поля сводной таблицы. Когда существует большое количество данных, относящихся к сводному полю, часто полезно группировать их по разделам. Aspose.Cells также предоставляет эту функцию с помощью метода PivotTable.setManualGroupField().
Группировка полей сводной таблицы
Приведенный ниже образец кода загружает образец файла Excel и выполняет группировку по первому сводному полю с использованием метода PivotTable.setManualGroupField(). Затем он обновляет и вычисляет данные сводной таблицы и сохраняет книгу как выходной файл Excel. На скриншоте показан эффект образца кода на образцовом файле Excel. Как видно на скриншоте, первое сводное поле теперь сгруппировано по месяцам и кварталам.
Образец кода
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Load sample workbook | |
Workbook wb = new Workbook("sampleGroupPivotFieldsInPivotTable.xlsx"); | |
//Access the second worksheet | |
Worksheet ws = wb.getWorksheets().get(1); | |
//Access the pivot table | |
PivotTable pt = ws.getPivotTables().get(0); | |
//Specify the start and end date time | |
DateTime dtStart = new DateTime(2008, 1, 1);//1-Jan-2018 | |
DateTime dtEnd = new DateTime(2008, 9, 5); //5-Sep-2018 | |
//Specify the group type list, we want to group by months and quarters | |
int[] groupTypeList = new int[2]; | |
groupTypeList[0] = PivotGroupByType.MONTHS; | |
groupTypeList[1] = PivotGroupByType.QUARTERS; | |
//Apply the grouping on the pivot field | |
PivotField field = pt.getRowFields().get(0); | |
field.groupBy(dtStart, dtEnd, groupTypeList, 1, true); | |
//Refresh and calculate pivot table | |
pt.setRefreshDataFlag(true); | |
pt.refreshData(); | |
pt.calculateData(); | |
pt.setRefreshDataFlag(false); | |
//Save the output Excel file | |
wb.save("outputGroupPivotFieldsInPivotTable.xlsx"); |