前言
数据透视表(Pivot Table)是Excel自带的一种数据分析工具,通常用于对大量数据进行汇总、分析和展示。它可以帮助用户从原始数据中提取关键信息、发现模式和趋势,并以可视化的方式呈现。
在数据透视表中,数据分析师通常希望进行自定义计算。 例如,组合“数量”和“单价”字段即可获得“销售额”。 但是在某些情况中,数据分析师需要对一些数据进行合并,比如在大区消费表中,需要把所有”黑龙江“的数据、”吉林“的数据和”辽宁“的数据合并在一起成为“东北“的数据。
而数据透视表的计算项功能则可以满足这样的业务需求。 今天为大家介绍的是如何使用Java将计算项添加到数据透视表中,具体步骤如下:
加载工作簿
创建数据透视表
将计算项添加到数据透视表
隐藏重复的名称项
保存工作簿
使用案例
现在某公司的采购经理需要基于下图(消费数据表)来分析订单的状态,并把除了”完成“之外的状态全部归类为”未完成“,并根据产品名称将所有”未完成“的产品金额叠加起来。
步骤一 加载工作簿
将上面的消费数据表工作簿加载进来。
Workbook workbook = new Workbook();
workbook.open("SalesData.xlsx");
步骤二 创建数据透视表
加载完工作簿之后,接下来为订单数据添加数据透视表:
//添加一个sheet
IWorksheet pivotSheet = workbook.getWorksheets().add();
pivotSheet.setName("销售分析");
//添加透视表
IPivotCache pivotCache = workbook.getPivotCaches().create(workbook.getWorksheets().get(0).getRange("A1:G71"));
IPivotTable pivotTable = pivotSheet.getPivotTables().add(pivotCache, pivotSheet.getRange("A1"));
pivotTable.getPivotFields().get("产品").setOrientation(PivotFieldOrientation.RowField);
pivotTable.getPivotFields().get("状态").setOrientation(PivotFieldOrientation.RowField);
pivotTable.getPivotFields().get("分类").setOrientation(PivotFieldOrientation.ColumnField);
pivotTable.getPivotFields().get("金额").setOrientation(PivotFieldOrientation.DataField);
pivotTable.getDataFields().get("求和项:金额").setNumberFormat("$#,##0_);($#,##0)");
显示效果如下所示:按照产品名将所有的消费订单进行分类。
步骤三 给透视表添加计算项
数据透视表准备就绪后,下一步是添加计算项。 通过ICalculatedItems 接口将计算项的集合添加到数据透视表字段。 添加名称和表达式,如下所示:
//基于状态字段创建计算项
ICalculatedItems statusCalcItems_lost = pivotTable.getPivotFields().get("状态").getCalculatedItems();
//给计算项添加表达式
statusCalcItems_lost.add("未完成", "=失败+退回+暂停");
此时的数据透视表将如下所示:已经出现了”未完成“状态的订单。
步骤四 隐藏不需要的项(失败、退回和暂停)
添加计算项后,需要隐藏与计算项重复的项并避免重复计算:
//隐藏被归为“未完成”的字段
IPivotItems status = pivotTable.getPivotFields().get("状态").getPivotItems();
status.get("失败").setVisible(false);
status.get("退回").setVisible(false);
status.get("暂停").setVisible(false);
显示效果如下:所有的”失败“、”退会“和”暂停“的数据已经不见了。
步骤五 保存为Excel
最后,对单元格应用样式和格式、调整列宽等并保存工作簿。 最终报告如下图所示:
workbook.Save("数据透视表自定义计算.xlsx");
最后的实现效果如下图所示:
总结
以上就是使用Java给数据透视表中添加计算项的具体步骤,除了文中介绍的功能之外,计算项还可以实现下列的功能:
计算特定产品的折扣价格
计算一个项目与其他项目相比的百分比份额
使用备用名称引用字段项目
如果您想了解更多有关于计算项的资料,可以点击这里查看。
GcExcel | 下载试用
GrapeCity Documents for Excel (简称:GcExcel)是一款基于 Java 平台的服务端高性能表格组件,可与纯前端表格控件 SpreadJS 前后端兼容,无需依赖 Office、POI 或第三方应用软件,在前端展示电子表格数据,在服务端批量创建、加载、编辑、打印、导入/导出 Excel 文档,为您开发的应用程序提供在线文档的前后端数据同步、在线填报与服务端批量导出与打印,以及类 Excel 报表模板设计与服务端高性能处理等一整套类 Excel 全栈解决方案。