如何使用Apache POI在数据透视表中添加列字段

时间:2018-08-27 14:06:10

标签: java apache-poi

enter image description here

这是我的桌子,我想这样显示 enter image description here

我在下面提供我的代码

  AreaReference a=new org.apache.poi.hssf.util.AreaReference("A1:G1673");

    CellReference b=new CellReference("I5");

    XSSFPivotTable pivotTable = my_sheet.createPivotTable(a,b);
    pivotTable.addRowLabel(2);
    pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 2, "Animated");
    pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 3, "Static");
    pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 5);
    FileOutputStream out=new FileOutputStream("/home/yuktamedia/Downloads/HP/banner1.xlsm");
    wb.write(out);
    out.close();

但是我的输出是这样的,我不知道如何添加列数据字段 enter image description here

1 个答案:

答案 0 :(得分:0)

 pivotTable.addRowLabel(2);

        pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 5);
        pivotTable.addDataColumn(5, true);

        pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(1).setAxis(
                org.openxmlformats.schemas.spreadsheetml.x2006.main.STAxis.AXIS_COL);

        pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(1).addNewItems();
        pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(1).getItems().addNewItem().setT(
                org.openxmlformats.schemas.spreadsheetml.x2006.main.STItemType.DEFAULT);

        pivotTable.getCTPivotTableDefinition().addNewColFields().addNewField().setX(1);

按此排序的问题