当前位置: 首页 > 知识库问答 >
问题:

使用Apache POI访问透视表字段设置

穆旭尧
2023-03-14

我用来自数据源的工作表填充数据创建一个工作簿,然后用该数据的透视表视图创建第二个工作表。一切都很好,但我似乎无法更改透视表的默认外观。我试图在创建透视表时选中设置(行标签-->从列表中单击一个-->字段设置-->小计-->无和行标签-->从列表中单击一个-->字段设置-->布局和打印-->“以表格形式显示项标签”),但在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);

共有1个答案

狄元魁
2023-03-14

终于想通了;缺乏好的文档迫使我尝试了无数的东西,最终能够实现我想要的;代码如下:

for(CTPivotField ctPivotField:pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldList()){
            ctPivotField.setAutoShow(false);
            ctPivotField.setOutline(false);
            ctPivotField.setSubtotalTop(false);
            ctPivotField.setSubtotalCaption("");
        }
 类似资料:
  • 我有3个模型 1-书: 2-用户 3-书签用户 bookuser迁移: 我试图得到所有的书籍与喜欢的只是当前的用户: 这是我得到的: 我如何访问数据透视表...或者如何得到那样的??我正在尝试,但id不起作用

  • 我想将数据透视表值字段余额和的数字格式单元格设置为

  • 我有桌子: 用户 id 姓名 企业 id 姓名 公司/用户 company_id user_id 表有多对多的关系。 由于关系复杂,我不知道如何做这个限制,当用户可以看到由这个用户创建的公司。( 现在我有这个,但是用户可以看到任何公司 公司控制器: 所以提示我请如何让用户只能看到这个用户创建的公司。

  • B.1 创建数据透视表 尽管数据透视表的功能非常强大,但是创建的过程却是非常简单。 将光标点在表格数据源中任意有内容的单元格,或者将整个数据区域选中。 “插入”选项卡,单击“数据透视表”命令。 3. 在弹出的“创建数据透视表”对话框中,“请选择要分析的数据”一项已经自动选中了光标所处位置的整个连续数据区域,也可以在此对话框中重新选择想要分析的数据区域(还可以使用外部数据源,请参阅后面内容)。“选择

  • 我是Jasper报告的新手。我正在使用Jaspersoft iReport Designer 4.5.1。使用以下格式的数据集创建报告(让我称之为Format1): 其中Q1和Q2是一些计算的商。现在Jasper设计师要求系列(不同的颜色)、类别(X轴)和值(Y轴)。由于我的“值”分布在列中,我需要取消数据的旋转以获得这种格式:(格式2) 能够将“Quo Type”作为系列传递,将“日期”传递为类