我需要在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");
但它的错误显示如下:
有人可以帮帮我吗?
答案 0 :(得分:3)
由于格式是XML,因此很容易检查所需内容。打开Zip
xlsx的包装,然后查看/xl/pivotTables/pivotTable1.xml
。
然后:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFPivotTable.html#getCTPivotTableDefinition%28%29和http://grepcode.com/file/repo1.maven.org/maven2/org.apache.poi/ooxml-schemas/1.1/org/openxmlformats/schemas/spreadsheetml/x2006/main/CTPivotTableDefinition.java。
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");