使用ApachePOI和Java在XSSFPivotTable中按值而不是按标签进行筛选

使用ApachePOI和Java在XSSFPivotTable中按值而不是按标签进行筛选,java,excel,apache-poi,Java,Excel,Apache Poi,我正在尝试向透视表列添加一个自动筛选,该列按值而不是按标题筛选数据。这是我的代码,说明我是如何做到这一点的: pivotTable2.addColumnLabel(DataConsolidateFunction.SUM, 29); pivotTable2.addRowLabel(29); pivotTable2.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(29).setDataFi

我正在尝试向透视表列添加一个自动筛选,该列按值而不是按标题筛选数据。这是我的代码,说明我是如何做到这一点的:

pivotTable2.addColumnLabel(DataConsolidateFunction.SUM, 29);
        pivotTable2.addRowLabel(29);
        pivotTable2.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(29).setDataField(true);
--跳过生成代码表行--


但是,每当我运行这段代码时,数据过滤器不会为透视表显示,而是像正常情况一样打印透视表。如果我尝试使用CAPTION_LESS_THAN,它会自动筛选标签筛选器而不是值筛选器。这可能与添加数据过滤器有关,但我不确定在哪里添加它。你能帮我解决这个问题吗。

你有没有问过自己,为什么你关于数据透视表的多个问题没有得到答案?因为缺乏足够的资源,所以不清楚你到底想要实现什么。@AxelRichter看看这个新例子:
org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFilters filters =
                        org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFilters.Factory.newInstance();
                org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFilter filter = filters.addNewFilter();
                filter.setId(0);
                filter.setFld(29);
                filter.setType(org.openxmlformats.schemas.spreadsheetml.x2006.main.STPivotFilterType.VALUE_LESS_THAN);
                filter.setStringValue1("0");
                CTFilterColumn myCol = filter.addNewAutoFilter().addNewFilterColumn();
                CTCustomFilters myFilter2= myCol.addNewCustomFilters();
                CTCustomFilter custFilt = myFilter2.addNewCustomFilter();

            custFilt.setOperator(STFilterOperator.LESS_THAN);
            custFilt.setVal("0");
           // filter.addNewAutoFilter().addNewFilterColumn().addNewCustomFilters().addNewCustomFilter().setVal("0");
            filter.getAutoFilter().setRef("A1");
            filter.getAutoFilter().getFilterColumnArray(0).setColId(0);

            //set filters to pivot table definition
            pivotTable2.getCTPivotTableDefinition().setFilters(filters);