概述

透视表是依据已有数据源来创建的交互式表格,我们可在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.刷新Excel透视表

默认情况下,源数据的更改变动不会自动更新到透视表,需要在透视表上进行刷新。

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 Excel透视表相关操作实现代码相关推荐

  1. week7 day2 表相关操作

    week7 day2 表相关操作 一. 存储引擎介绍 1.1 什么是存储引擎 1.2 MySQL支持的存储引擎 MyISAM和InnoDB两个存储引擎的区别 1.3 使用存储引擎 二. 表介绍 三. ...

  2. mysql数据表关联操作步骤_MySQL数据库(三)—— 表相关操作(二)之约束条件、关联关系、复制表...

    表相关操作(二)之约束条件.关联关系.复制表 一.约束条件 1.何为约束 除了数据类型以外额外添加的约束 2.约束条件的作用 为了保证数据的合法性,完整性 3.主要的约束条件 NOT NULL #标识 ...

  3. python学习 day41之MySQL表相关操作续集

    MySQL表相关操作续集 七 数据类型 介绍 mysql常用数据类型概览 数值类型 1.整数类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 指令验证 2.浮 ...

  4. 导学+初识MySQL+SQL语法规范+数据库相关操作+表相关操作+MySql存储引擎介绍+MySQL表的创建+测试数据类型

    一.导学 1.什么是SQL? 结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据: 2.SQL语言组成部分 (1)DDL--数据定义语言,主要定义数据库.表.视图.索引和触发器等 (2) ...

  5. java 对excel 截图_java基于poi实现快速操作Excel的工具[v2.1.0]版本更新

    Excel4J v2.x 一. v2.x新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel支持非注 ...

  6. java sheet类_java excel 导出 多个sheet

    展开全部 以下代码仅供参考: //生成一个excel文件 WritableWorkbook wwb = null; try { //首先要使用Workbook类的工厂方法创建一个可写入62616964 ...

  7. java 对excel 截图_java基于poi实现快速操作Excel的工具[v2.0.0]

    Excel4J v2.0.0 一. v2.0.0新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel ...

  8. VSTO扩展Excel之二:工作表相关处理

    "VSTO扩展Excel之一:工作薄相关处理"已经述及,Excel的VSTO外接程序经常需要获取到某个工作薄对象,并以此来获得其中的工作表对象,然后再对工作表中的数据进行处理,显然 ...

  9. java 报表导出_Java Excel报表导出Demo

    /*** 一级权限数据导出 *@return */@RequestMapping(value= "/getExportData", method =RequestMethod.GE ...

最新文章

  1. 路径规划算法之Bellman-Ford算法
  2. java session 生命周期_JavaWeb关于session生命周期的几种设置方法
  3. 阿里巴巴发送短信接口的使用
  4. mysql移植海思_海思Hi3518EV200(5)图像sensor驱动开发
  5. 访问网络共享时出现“拒绝访问”
  6. SpringCloud Ribbon之概述(一)
  7. 01.备份crm源码
  8. webhooks php,GitHub和WebHooks自动部署PHP项目
  9. H264之sps解析分辨率
  10. 《数据库系统基础教程》读书笔记——第一章 数据库系统世界
  11. 线性动力学问题(二)
  12. ILSVRC2012数据集介绍
  13. 用php做一个网站,教你如何用PHP开发一个完整网站
  14. 读书是走马观花还是咬文嚼字?
  15. Asp.Net Core 密码加密方案
  16. pytorch安装GPU版本 (Cuda12.1)教程
  17. ASP漏洞及安全建议
  18. 一年的第多少周+一个月的第多少天+一周的第多少天
  19. C语言制作通讯录(新手练习推荐)
  20. canvas rotate 累加旋转_Canvas的变换

热门文章

  1. 工厂计算机管理需要会什么,工厂生产管理系统应该具备哪些功能?- 智造家
  2. 实用教程 | 一文读懂「微信分账」功能
  3. 全国青少年编程等级考试scratch四级真题2021年12月(含题库答题软件账号)
  4. go gox交叉编译
  5. 可视化工具solo show
  6. SpringBoot Elasticsearch
  7. Tomcat长轮训原理解析
  8. 话题:ERP的管理思想与最佳实践
  9. DT时代,国内大数据分析的发展现状是什么?
  10. Linux内网服务器实现外网登陆