java刷新透视表数据源,Java 创建、刷新Excel透视表/设置透视表行折叠、展开
Java 创建、刷新Excel透视表/设置透视表行折叠、展开
透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表。本文以创建透视表、刷新透视表以及设置透视表的行展开或折叠为例,介绍具体的操作方法。
所需工具:Free Spire.XLS for Java免费版,编辑代码前,先下载导入jar到Java程序(可手动下载导入,或通过Maven仓库下载导入)。
示例代码
1. 创建透视表
import com.spire.xls.*;
public class CreatePivotTable {
public static void main(String[] args) {
//加载Excel测试文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//获取第一个的工作表
Worksheet sheet = wb.getWorksheets().get(0);
//为需要汇总和分析的数据创建缓存
CellRange dataRange = sheet.getCellRange("A1:D10");
PivotCache cache = wb.getPivotCaches().add(dataRange);
//使用缓存创建数据透视表,并指定透视表的名称以及在工作表中的位置
PivotTable pt = sheet.getPivotTables().add("PivotTable",sheet.getCellRange("A12"),cache);
//添加行字段1
PivotField pf1 = null;
if (pt.getPivotFields().get("月份") instanceof PivotField){
pf1 = (PivotField) pt.getPivotFields().get("月份");
}
pf1.setAxis(AxisTypes.Row);
//添加行字段2
PivotField pf2 = null;
if (pt.getPivotFields().get("厂商") instanceof PivotField){
pf2 = (PivotField) pt.getPivotFields().get("厂商");
}
pf2.setAxis(AxisTypes.Row);
//设置行字段的标题
pt.getOptions().setRowHeaderCaption("月份");
//添加列字段
PivotField pf3 = null;
if (pt.getPivotFields().get("产品") instanceof PivotField){
pf3 = (PivotField) pt.getPivotFields().get("产品");
}
pf3.setAxis(AxisTypes.Column);
//设置列字段标题
pt.getOptions().setColumnHeaderCaption("产品");
//添加值字段
pt.getDataFields().add(pt.getPivotFields().get("总产量"),"求和项:总产量",SubtotalTypes.Sum);
//设置透视表样式
pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleDark12);
//保存文档
wb.saveToFile("数据透视表.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
透视表创建结果:
2. 刷新透视表
import com.spire.xls.*;
public class RefreshPivotTable {
public static void main(String[] args) {
//创建实例,加载Excel
Workbook wb = new Workbook();
wb.loadFromFile("数据透视表.xlsx");
//获取第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
//更改透视表的数据源数据
sheet.getCellRange("C2:C4").setText("产品A");
sheet.getCellRange("C5:C7").setText("产品B");
sheet.getCellRange("C8:C10").setText("产品C");
//获取透视表,刷新数据
PivotTable pivotTable = (PivotTable) sheet.getPivotTables().get(0);
pivotTable.getCache().isRefreshOnLoad();
//保存文档
wb.saveToFile("刷新透视表.xlsx",FileFormat.Version2013);
}
}
透视表更新前后效果:
3.折叠、展开透视表中的行
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.pivottables.XlsPivotTable;
public class ExpandRows {
public static void main(String[] args) {
//加载包含透视表的Excel
Workbook wb = new Workbook();
wb.loadFromFile("数据透视表.xlsx");
//获取数据透视表
XlsPivotTable pivotTable = (XlsPivotTable) wb.getWorksheets().get(0).getPivotTables().get(0);
//计算数据
pivotTable.calculateData();
//展开”月份”字段下“2”的详细信息
PivotField field = (PivotField) pivotTable.getPivotFields().get("月份");
field.hideItemDetail("2",false);
//折叠”月份”字段下“3”的详细信息
PivotField field1 = (PivotField) pivotTable.getPivotFields().get("月份");
field1.hideItemDetail("3",true);
//保存并打开文档
wb.saveToFile("展开、折叠行.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
折叠、展开效果:
Java 创建、刷新Excel透视表/设置透视表行折叠、展开相关教程
java刷新透视表数据源,Java 创建、刷新Excel透视表/设置透视表行折叠、展开相关推荐
- mysql给用户建表权限_创建MySQL用户 赋予某指定库表的权限
摘自: http://renxiangzyq.iteye.com/blog/763837 update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't h ...
- java工作流 表设计_创建activiti工作流所需23张表
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度. Activiti的创始人也就是JBPM(也是一个优秀的BPM引擎)的创始人, ...
- 【Excle数据透视表】如何创建非共享缓存的数据透视表
一般情况下,利用同一个数据源创建多个数据表时,默认创建的是共享缓存的数据透视表.刷新一个数据透视表时会影响其他数据透视表的展示结果. 解决方案 创建非共享缓存的多个数据透视表 步骤一 单击工作表数据任 ...
- 使用java通过固定的excel模板自动生成数据库表的ddl建表语句
有时候要建很多表或一个表有很多字段,一个个复制字段弄太麻烦了,为了提高点工作效率,写了个小工具通过固定的excel模板自动生成基础的ddl建表语句 maven依赖 <!--核心jar包--> ...
- sqlalchemy根据表名动态创建model类
sqlalchemy根据表名动态创建model类 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/J_Object/article/details/8 ...
- NC57中间表数据源的设置流程
目前场景如下: NC定时将数据写入中间库中,第三方去中间库中抓取: 方式一: 第一步:在NC客户端[客户化]--[二次开发工具]--[参数设置]--[参数模板管理]添加所设置的数据源数据 找到对应的数 ...
- 创建表的时候创建索引
创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度.创建索引有3种方式,这3种方式分别是创建表的时候创建索引.在已经存在的表上创建索引和使用ALTER TABLE语句来创建索引.本 ...
- 超过一天的文件_一键合并多个excel文件至同一工作表!
问题 小文是一个文艺青年,她从豆瓣上收集了很多种书籍的信息,并将书籍信息按照书籍分类创建了很多个excel文件,有一天,她突然想把这些不同分类的excel文件合并到一个工作表里,那么问题来了,如何快速 ...
- java excel 展开折叠_Java 创建、刷新Excel透视表/设置透视表行折叠、展开
透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表.本文以创建透视表.刷新透视表以及设置透视表的行展开或折叠为例,介绍具体的操作方法. 所需工具:Free S ...
最新文章
- 微信小程序获取openid和session_key并且把openid存入数据库
- 修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...
- C++11:using 的各种作用
- linux命令学习记录一
- 微信小程序 开发过程中遇到的坑(一)
- 北京Dotnet分享会 || 精英论坛第三期
- 安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号
- 惯性积计算实例_关于材料力学中惯性矩的认识00
- Unity3D研究院之手游开发中所有特殊的文件夹(转)
- 胡寿松《自动控制原理》课后习题重点题与考研刷题指南(ch1-4)
- 提升效率之串口监控工具
- 电脑丢失dll文件能一键修复吗,哪种修复方法靠谱?
- 五胡十六国、东晋南北朝这280年历史,你知道多少?5000字带你看个清楚明白
- 可视化神器Plotly玩转直方图
- UOJ220 [NOI2016] 网格 【割顶】【并查集】
- Jmeter 脚本中使用base64 加解密、MD5加密
- 关于Bellman-Ford算法的个人理解
- 关于java导出Excel 并设置密码权限
- MATLAB app 实现音乐播放器
- mysql 4.0.18_DBD:MySQL-4.018的安装问题