透视筛选器
可能的使用场景
当您以已知数据创建数据透视表并希望筛选数据透视表时,您需要学习并使用筛选器。 它可以帮助您有效地筛选出所需的数据。 通过使用Aspose.Cells Java API,您可以对数据透视表中的字段值添加筛选器。
在Excel中为数据透视表添加筛选
在Excel中为数据透视表添加筛选,按照以下步骤操作:
- 选择要清除筛选的数据透视表。
- 点击你想要添加筛选的下拉箭头。
- 从下拉菜单中选择“前十名”。
- 设置显示模式和筛选数量。
在数据透视表中添加筛选
请参阅以下示例代码。 它设置数据并创建基于数据的数据透视表。 然后,在数据透视表的行字段上添加筛选器。 最后,以 output XLSX 格式保存工作簿。 执行示例代码后,工作表上将添加带有top10筛选器的数据透视表。
示例代码
//Instantiating an Workbook object | |
Workbook workbook = new Workbook(); | |
//Obtaining the reference of the newly added worksheet | |
Worksheet ws = workbook.getWorksheets().get(0); | |
Cells cells = ws.getCells(); | |
//Setting the value to the cells | |
Cell cell = cells.get("A1"); | |
cell.putValue("Fruit"); | |
cell = cells.get("B1"); | |
cell.putValue("Count"); | |
cell = cells.get("A2"); | |
cell.putValue("Apple"); | |
cell = cells.get("A3"); | |
cell.putValue("Mango"); | |
cell = cells.get("A4"); | |
cell.putValue("Blackberry"); | |
cell = cells.get("A5"); | |
cell.putValue("Cherry"); | |
cell = cells.get("A6"); | |
cell.putValue("Guava"); | |
cell = cells.get("A7"); | |
cell.putValue("Carambola"); | |
cell = cells.get("A8"); | |
cell.putValue("Banana"); | |
cell = cells.get("B2"); | |
cell.putValue(5); | |
cell = cells.get("B3"); | |
cell.putValue(3); | |
cell = cells.get("B4"); | |
cell.putValue(6); | |
cell = cells.get("B5"); | |
cell.putValue(4); | |
cell = cells.get("B6"); | |
cell.putValue(5); | |
cell = cells.get("B7"); | |
cell.putValue(2); | |
cell = cells.get("B8"); | |
cell.putValue(20); | |
//Adding a PivotTable to the worksheet | |
int i = ws.getPivotTables().add("=A1:B8", "D10", "PivotTable1"); | |
//Accessing the instance of the newly added PivotTable | |
PivotTable pivotTable = ws.getPivotTables().get(i); | |
pivotTable.addFieldToArea(PivotFieldType.ROW, 0); | |
pivotTable.addFieldToArea(PivotFieldType.DATA, "Count"); | |
pivotTable.getDataFields().get(0).setFunction(ConsolidationFunction.SUM); | |
PivotField field = pivotTable.getRowFields().get(0); | |
field.setAutoSort(true); | |
field.setAscendSort(false); | |
field.setAutoSortField(0); | |
//Add top10 filter | |
PivotField filterField = pivotTable.getRowFields().get(0); | |
filterField.filterTop10(0, PivotFilterType.COUNT, false, 5); | |
pivotTable.refreshData(); | |
pivotTable.calculateData(); | |
workbook.save("out.xlsx"); |
在Excel中清除数据透视表的筛选
在 Excel 中清除数据透视表中的筛选,按照以下步骤操作:
- 选择要清除筛选的数据透视表。
- 单击数据透视表中要清除筛选的下拉箭头。
- 从下拉菜单中选择“清除筛选”。
- 如果您要清除数据透视表中的所有筛选,还可以在 Excel 的“数据透视表分析”选项卡上单击“清除筛选”按钮。
清除数据透视表的筛选
请参阅以下示例代码。它设置数据并基于它创建数据透视表。然后在数据透视表的行字段上添加筛选器。最后,将工作簿保存为output XLSX格式。 在执行示例代码后,工作表中将添加带有top10筛选器的数据透视表。添加筛选器后,当我们需要非筛选数据时,可以清除特定数据透视字段上的筛选器。在执行清除筛选器的代码后,特定数据透视字段上的筛选器将被清除。请检查 output XLSX。
示例代码
//Instantiating an Workbook object | |
Workbook workbook = new Workbook(); | |
//Obtaining the reference of the newly added worksheet | |
Worksheet ws = workbook.getWorksheets().get(0); | |
Cells cells = ws.getCells(); | |
//Setting the value to the cells | |
Cell cell = cells.get("A1"); | |
cell.putValue("Fruit"); | |
cell = cells.get("B1"); | |
cell.putValue("Count"); | |
cell = cells.get("A2"); | |
cell.putValue("Apple"); | |
cell = cells.get("A3"); | |
cell.putValue("Mango"); | |
cell = cells.get("A4"); | |
cell.putValue("Blackberry"); | |
cell = cells.get("A5"); | |
cell.putValue("Cherry"); | |
cell = cells.get("A6"); | |
cell.putValue("Guava"); | |
cell = cells.get("A7"); | |
cell.putValue("Carambola"); | |
cell = cells.get("A8"); | |
cell.putValue("Banana"); | |
cell = cells.get("B2"); | |
cell.putValue(5); | |
cell = cells.get("B3"); | |
cell.putValue(3); | |
cell = cells.get("B4"); | |
cell.putValue(6); | |
cell = cells.get("B5"); | |
cell.putValue(4); | |
cell = cells.get("B6"); | |
cell.putValue(5); | |
cell = cells.get("B7"); | |
cell.putValue(2); | |
cell = cells.get("B8"); | |
cell.putValue(20); | |
//Adding a PivotTable to the worksheet | |
int i = ws.getPivotTables().add("=A1:B8", "D10", "PivotTable1"); | |
//Accessing the instance of the newly added PivotTable | |
PivotTable pivotTable = ws.getPivotTables().get(i); | |
pivotTable.addFieldToArea(PivotFieldType.ROW, 0); | |
pivotTable.addFieldToArea(PivotFieldType.DATA, "Count"); | |
pivotTable.getDataFields().get(0).setFunction(ConsolidationFunction.SUM); | |
PivotField field = pivotTable.getRowFields().get(0); | |
field.setAutoSort(true); | |
field.setAscendSort(false); | |
field.setAutoSortField(0); | |
//Add top10 filter | |
PivotField filterField = pivotTable.getRowFields().get(0); | |
filterField.filterTop10(0, PivotFilterType.COUNT, false, 5); | |
pivotTable.refreshData(); | |
pivotTable.calculateData(); | |
workbook.save("out_add.xlsx"); | |
//Clear PivotFilter from the specific PivotField | |
pivotTable.getPivotFilters().clearFilter(field.getBaseIndex()); | |
pivotTable.refreshData(); | |
pivotTable.calculateData(); | |
workbook.save("out_delete.xlsx"); |