本文内容介绍通过Java程序在Excel表格中根据数据来创建透视表。

环境准备

需要使用Excel类库工具—Free Spire.XLS for Java,这里使用的是免费版,可通过官网下载Jar包并解压,手动导入lib文件夹下的Spire.Xls.jar到Java程序;或者也可以通过Maven仓库下载导入

Java代码示例

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();
}
}

透视表创建结果:

<完>

Java 在Excel中创建透视表的更多相关文章

  1. 【转】关于C#使用Excel的数据透视表的例子

    收到消息,下星期又有导出 Excel 报表的代码要写.心想,不就是 OleDb 先 CREATE 表, 然后 INSERT 么?都是体力活啊...... 结果拿到纸张的报表,我就悲剧了.报表的结构,像 ...

  2. Java 在PPT中创建SmartArt图形、读取SmartArt图形中的文本

    一.概述及环境准备 SmartArt 图形通过将文字.图形从多种不同布局.组合来表现内容和观点的逻辑关系,能够快速.有效地传达设计者的意图和信息.这种图文表达的视觉表示形式常用于PPT,Word,Ex ...

  3. Java处理Excel中的日期格式

    Java处理Excel中的日期格式 2011-12-23 17:34:03|  分类: java |举报 |字号 订阅 下载LOFTER 我的照片书  |   在Excel中的日期格式,其数值为距离1 ...

  4. JAVA将Excel中的报表导出为图片格式(一)问题背景

    如题所示,先抛出一个问题,如何使用JAVA将Excel中的报表导出为图片格式? 首先说一下这个问题的背景,也就是为什么博主会碰到这个问题 随着微信,易信之流大行其道,企业内部的办公交流.绩效考评甚至考 ...

  5. ASP.NET实现类似Excel的数据透视表

    代码: /Files/zhuqil/Pivot.zip 数据透视表提供的数据三维视图效果,在Microsoft Excel能创建数据透视表,但是,它并不会总是很方便使用Excel.您可能希望在Web应 ...

  6. java 在Excel中插入图片 POI实现

    一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...

  7. Excel学习 -- 数据透视表功能

    Excel -- 数据透视表基础 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等.所进行的计算与数据跟数据透视表中的排列有关.    之所以称为数据透视表,是因 ...

  8. Java 为 Excel 中的行设置交替背景色

    在制作Excel表格时,通过将数据表中上下相邻的两行用不同的背景色填充,可以使各行的数据看起来更清楚,避免看错行,同时也能增加Excel表格的美观度.本文将介绍如何在Java程序中为 Excel 奇数 ...

  9. Java 在Excel中添加分离型饼图、环形图

    一.概述 Excel中可支持多种不同类型的图表,本文介绍如何绘制分离型饼图和环形图.其中,分离型饼图的绘制可分为整体分离型(即设置饼图分离程度)和局部分离(即设置点爆炸型值)两种情况.下面将以Java ...

随机推荐

  1. python3爬虫 爬取动漫视频

    起因 因为本人家里有时候网速不行,所以看动漫的时候播放器总是一卡一卡的,看的太难受了.闲暇无聊又F12看看.但是动漫网站却无法打开控制台.这就勾起了我的兴趣.正好反正无事,去寻找下视频源. 但是这里事 ...

  2. Stream—一个早产的婴儿

    当你会关注这篇文章时,那么意味着你对Stream或多或少有些了解,甚至你在许多业务中有所应用.正如你所知,业界对Stream.lambda褒贬不一,有人认为它是银弹,也有人认为其降低了代码的可读性.事 ...

  3. redis: Jedis API(十四)

    1.Key操作 package com.kuang; import redis.clients.jedis.Jedis; import java.util.Set; public class Test ...

  4. Java 多线程 -- volatile 山寨版的synchronized

    在 多线程中,每个线程会把数据从主内存中拷贝到自己的工作内存中,当线程完成计算后,再把工作内存的数据更新到主内存中,或者当主内存主数据有更新是,线程会去主内存取最新数据.但是,当线程特别忙时,就不会去 ...

  5. Android--sos闪光灯

    Camera camera = null; Parameters parameters = null; Handler handler = new Handler() { @Override publ ...

  6. beego rel/reverse

    用户可以发布多个文章 对用户来说是一对多 对文章来说是多对一 用户是主表 文章是用户的从表 rel用在从表中,给主表结构体设置主键,也就是文章表对应用户表的外键 reverse用在主表中,指定主表与从 ...

  7. QIntValidator没有最小值的限制,继承然后写个新类来控制最小值

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/firecityplans/article ...

  8. [Inno Setup] 字符串列表,当要处理一长串文件时很有用

    https://wiki.freepascal.org/TStringList-TStrings_Tutorial TStringList-TStrings Tutorial │ Deutsch (d ...

  9. POJ2044 天气预报---状态细则

    墙角数枝梅,凌寒独自开. 遥知不是雪,为有暗香来.--王安石 题目:天气预报 网址:http://poj.org/problem?id=2044 你是一个可以控制降雨的神仙. 你是一个仁慈的神,希望土 ...

  10. 学会HTML就可以找工作了

    对编程小白来讲,想要学习门槛低,学习周期短,难度指数可忽略.短时间内可能找一份薪资不错编程相关工作,那就把HTML作为入门级语言吧. 网页设计师 (//upload-images.jianshu.io ...