Java ApachePOI:Excel透视表-行标签

Java ApachePOI:Excel透视表-行标签,java,excel,apache-poi,pivot-table,xssf,Java,Excel,Apache Poi,Pivot Table,Xssf,我需要用JAVA创建excel工作表,如下所示: 我无法创建多列并排的行标签(菜单和子菜单过滤器) 与其在不同的列中显示子菜单,不如将其显示在菜单列下 下面是我写的一段代码: XSSFSheet sheet = my_xlsx_workbook.getSheetAt(0); AreaReference a=new AreaReference("A1:G7"); CellReference b=new CellReference("I5"); XSSFPivotTabl

我需要用JAVA创建excel工作表,如下所示:

我无法创建多列并排的行标签(菜单和子菜单过滤器)

与其在不同的列中显示子菜单,不如将其显示在菜单列下

下面是我写的一段代码:

XSSFSheet sheet = my_xlsx_workbook.getSheetAt(0); 
    AreaReference a=new AreaReference("A1:G7");
    CellReference b=new CellReference("I5");
    XSSFPivotTable pivotTable = sheet.createPivotTable(a,b);
    pivotTable.addReportFilter(0);
    pivotTable.addReportFilter(1);
    pivotTable.addRowLabel(2);
    pivotTable.addRowLabel(3);
    pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 4, "Sum");   
但其错误显示如下:


有人能帮我吗?

因为格式是XML,所以很容易检查需要什么。解压缩
Zip
xlsx并查看
/xl/pivotTables/pivotTable1.xml

然后:和


在“透视表选项”下,选择“经典透视表布局”,您能再详细说明一下吗?我是poi API的新手。我正在教你如何在Excel中更改它。宏记录器显示您想要的
pivotTable.InGridDropZones=True
pivotTable.rowaxisloayout xltablerrow
我想要从java代码执行此操作。我无法在excel工作表上手动更改它。此表已由用户下载。
    AreaReference a=new AreaReference(new CellReference("A1"), new CellReference("E7"));
    CellReference b=new CellReference("I5");
    XSSFPivotTable pivotTable = sheet.createPivotTable(a,b);
    pivotTable.addReportFilter(0);
    pivotTable.addReportFilter(1);
    pivotTable.addRowLabel(2);

pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(2).setOutline(false);

    pivotTable.addRowLabel(3);
    pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 4, "Sum");