java - 使用 Apache POI 访问数据透视表的字段设置

标签 java apache-poi pivot-table

我正在创建一个工作簿,其中包含来自数据源的工作表填充数据,然后使用该数据的数据透视 TableView 创建第二个工作表。一切正常,但我似乎无法更改数据透视表的默认外观。我正在尝试获取设置(行标签-->单击列表中的一个-->字段设置-->小计-->无和行标签-->单击列表中的一个-->字段设置-->布局和打印-->“以表格形式显示项目标签”)在创建数据透视表时检查但无法在 POI 中找到句柄/标志。尝试在 pivotTable.getCTPivotTableDefinition() 或 pivotTable.getCTPivotTableDefinition().getPivotTableStyleInfo() 下找到一些东西,但没有锁定。请告知是否有办法在数据透视表创建期间使用 poi 设置这些设置,而不是在按照括号中提到的步骤之后。这是我的数据透视表代码:

XSSFSheet sheet = (XSSFSheet)wb.createSheet("Data");
...
...
//filling data sheet, skipping this part as it's not relevant 
...
XSSFSheet pivotSheet = (XSSFSheet)wb.createSheet("Pivot Table");
AreaReference source = new AreaReference(sheet.getSheetName()+"!A$1:W$"+String.valueOf(sheet.getLastRowNum()));
CellReference position = new CellReference("A3");
XSSFPivotTable pivotTable = pivotSheet.createPivotTable(source, position);


        /* Add filters */
        pivotTable.addRowLabel(17);
        pivotTable.addRowLabel(20);
        pivotTable.addRowLabel(21);
        pivotTable.addRowLabel(22);
        pivotTable.addRowLabel(13);
        pivotTable.addRowLabel(19);
        pivotTable.addRowLabel(6);
        pivotTable.addRowLabel(0);
        pivotTable.addRowLabel(18);
        pivotTable.addRowLabel(1);
        pivotTable.addRowLabel(7);
        pivotTable.addRowLabel(9);

最佳答案

终于明白了;缺乏良好的文档迫使我尝试了无数的东西,最终能够实现我想要的;这是代码:

for(CTPivotField ctPivotField:pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldList()){
            ctPivotField.setAutoShow(false);
            ctPivotField.setOutline(false);
            ctPivotField.setSubtotalTop(false);
            ctPivotField.setSubtotalCaption("");
        }

关于java - 使用 Apache POI 访问数据透视表的字段设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31976127/

相关文章:

java - “android.useAndroidX”属性未启用

java - Java 中的 Excel 生成问题

java - 加载 XSSFWorkbook 类的 Apache POI 错误

google-sheets - 如何根据Google表格中的标志列获取垂直数据并水平提取数据?

vba - 错误 440 : Method 'Create' of object 'PivotCaches' failed

java - 如何获取JList中面板的选定元素(覆盖选定元素)

java - 将 BufferedImage 转换为 ByteBuffer

java.lang.Exception : java. lang.UnsatisfiedLinkError:

java - 如何使用 Apache POI 加载大型 xlsx 文件?

excel - 数据透视表根据值的计数计算字段