当您需要快速分析Excel工作表中的数据并查看数据中的比较,模式和趋势时,您的第一个直觉就是创建数据透视表。但是有时并不是每个人都有时间查看表中的数据并查看发生了什么。数据透视图通过以图形方式表示数据,使其更易于理解数据。在本文中,我将介绍如何使用Free Spire.XLS for Java API在Java中的Excel文件中创建数据透视表和数据透视图。

添加依赖项

首先,您需要添加所需的依赖项,以将Java的Free Spire.XLS包含到Java项目中。有两种方法可以做到这一点。

如果使用maven,则需要将以下代码添加到项目的pom.xml文件中。

com.e-iceblue

e-iceblue

http://repo.e-iceblue.com/nexus/content/groups/public/

e-iceblue

spire.xls.free

3.9.1

对于非Maven项目,请从此网站下载Java的Free Spire.XLS ,解压缩该软件包并将lib文件夹中的Spire.Xls.jar作为依赖项添加到您的项目中。

创建数据透视表

免费的Spire.XLS for Java API提供了XlsPivotTablesCollection.add方法,该方法用于将数据透视表添加到Excel工作表中。下面的示例演示如何创建Excel文件,将数据添加到Excel工作表,然后创建数据透视表以分析工作表中的数据。

import com.spire.xls.*;

public class CreatePivotTable {

public static void main(String[] args) {

//Create a workbook

Workbook workbook = new Workbook();

Worksheet sheet = workbook.getWorksheets().get(0);

//Add some data to the worksheet

sheet.getCellRange("A1").setValue("Product");

sheet.getCellRange("B1").setValue("Month");

sheet.getCellRange("C1").setValue("Sale");

sheet.getCellRange("A2").setValue("Coffee");

sheet.getCellRange("A3").setValue("Coffee");

sheet.getCellRange("A4").setValue("Chocolate");

sheet.getCellRange("A5").setValue("Chocolate");

sheet.getCellRange("A6").setValue("Milk");

sheet.getCellRange("A7").setValue("Milk");

sheet.getCellRange("B2").setValue("January");

sheet.getCellRange("B3").setValue("February");

sheet.getCellRange("B4").setValue("January");

sheet.getCellRange("B5").setValue("February");

sheet.getCellRange("B6").setValue("January");

sheet.getCellRange("B7").setValue("February");

sheet.getCellRange("C2").setValue("1000");

sheet.getCellRange("C3").setValue("1500");

sheet.getCellRange("C4").setValue("900");

sheet.getCellRange("C5").setValue("700");

sheet.getCellRange("C6").setValue("800");

sheet.getCellRange("C7").setValue("1000");

//Add a PivotTable to the worksheet

CellRange dataRange = sheet.getCellRange("A1:C7");

PivotCache cache = workbook.getPivotCaches().add(dataRange);

PivotTable pt = sheet.getPivotTables().add("Pivot Table", sheet.getCellRange("A10"), cache);

//Drag the fields to the row area

PivotField pf =null;

if (pt.getPivotFields().get("Product") instanceof PivotField){

pf= (PivotField) pt.getPivotFields().get("Product");

}

pf.setAxis(AxisTypes.Row);

PivotField pf2 =null;

if (pt.getPivotFields().get("Month") instanceof PivotField){

pf2= (PivotField) pt.getPivotFields().get("Month");

}

pf2.setAxis(AxisTypes.Row);

//Drag the field to the data area

pt.getDataFields().add(pt.getPivotFields().get("Sale"), "SUM of Sale", SubtotalTypes.Sum);

//Set PivotTable style

pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium12);

//Calculate data

pt.calculateData();

//Set column width

sheet.setColumnWidth(1, 14);

sheet.setColumnWidth(2, 14);

//Save the result file

workbook.saveToFile("CreatePivotTable.xlsx", ExcelVersion.Version2013);

}

}

输出:

创建数据透视图

要将数据透视图添加到Excel工作表中,需要使用WorksheetChartsCollection.add方法。在下面的示例中,您将看到如何将透视图添加到Excel工作表中。

import com.spire.xls.*;

import com.spire.xls.core.IPivotTable;

public class CreatePivotChart {

public static void main(String[] args) {

//Load the Excel file

Workbook workbook = new Workbook();

workbook.loadFromFile("CreatePivotTable.xlsx");

//Get the first worksheet

Worksheet sheet = workbook.getWorksheets().get(0);

//get the first pivot table in the worksheet

IPivotTable pivotTable = sheet.getPivotTables().get(0);

//Add a clustered column chart based on the pivot table to the second worksheet

Chart chart = workbook.getWorksheets().get(1).getCharts().add(ExcelChartType.ColumnClustered, pivotTable);

//Set chart position

chart.setTopRow(2);

chart.setBottomRow(15);

//Set chart title

chart.setChartTitle("Total");

//Save the result file

workbook.saveToFile("CreatPivotChart.xlsx", ExcelVersion.Version2013);

}

}

输出:

java excel 透视_在Java中用Excel创建数据透视表和数据透视图相关推荐

  1. JAVA 的读取Excel方法_纯Java的方式读取excel2007

    * 首先介绍excel2007文件的格式,这里单只工作表文件,不包括加载宏的以及其他格式的,即.xlsx扩展名的 * 你可以把Book1.xlsx这个文件用解压缩文件打开,这是office2007的新 ...

  2. java输出excel 异常处理_使用poi导出Excel,并设定单元格内容类型,抛出异常

    本例子使用的是HSSF,为Excel2003提供处理方案. 设定为输入类型为数值 import org.apache.poi.hssf.usermodel.DVConstraint; import o ...

  3. java中读取excel数据类型_在Java中读取Excel文件的内容

    利用JExcelApi来动态生成excel文档 首先,请到http://www.andykhan.com/jexcelapi/index.html下载java excel api,主页上同时有比较详细 ...

  4. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  5. php写excel文件_利用PHPExcel实现Excel文件的写入和读取

    作为一个原本的Java党,用过PHP才知道,原来对于Excel文件的写入和读取原来可以这么简单! 利用PHP实现对于Excel的读取,主要借助于PHPExcel插件来完成. PHPExcel下载地址: ...

  6. java初始化数据报_初始化java原因

    虚拟机的类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类 即虚拟机的类加载机制. 在Java中,类型的加载.链接 ...

  7. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  8. 面试java回答优缺点_阿里Java开发面经分享,面试题(附回答)

    下面要给大家分享一个阿里Java开发面经,里面包含了具体的问题,以及相关回答,主要包括了数据库.操作系统.项目相关.java基础.数据结构.计算机网络等内容. 一.数据库 1.为什么在项目中用Mong ...

  9. java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  10. java基础语句_【Java基础-Java语言基础】

    知识点:1.关键字 2.标识符 3.变量和常量 一.关键字 1.Java中的关键字有很多一共53个关键字有两个是保留字(java的关键字都是小写的!!) 2.Java中的保留字 (1)const 常量 ...

最新文章

  1. 如何从功能测试转化自动化测试?
  2. hadoop balancer
  3. 08-cmake语法-set()
  4. keepalived 多实例
  5. linux下系统安全常见问题2
  6. arm-linux-gcc静态编译和动态编译的区别
  7. java微信支付代码_Java微信支付之服务号支付代码示例
  8. JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?
  9. 一网打进Linux下那些查找命令
  10. Your Bitbucket account has been locked. To unlock it and log in again you must solve a CAPTCHA.
  11. mysql 查询建表详情_MySQL 查看数据表结构以及详情的方法
  12. matlab小波包分析,小波分析及小波包分析
  13. 短文本分类---小白从0到0.3的辛酸历程(上)
  14. 有效沟通bic法则_善用BIC法则,负面回馈不怕引起反弹!
  15. iPhone 14 系列维修价曝光,修不起!
  16. SMS短信的编码规则
  17. 基于STM32F4:多通道ADC采集,采用DMA的形式,亲测有效
  18. corrupted double-linked list: 0x086a6c50(内存问题)
  19. thinkphp5配置完成后,遇到禁止访问!
  20. 插件电容时间久了_揭秘电解电容存放久了会怎样,电容放置时间过长怎么办?

热门文章

  1. 自定义炫酷效果ViewPage指示器
  2. 微信服务商开发能力说明文档怎么写
  3. java制作仿win7计算器之二完结篇
  4. xshell连接kali系统
  5. Java NIO 模型代码示例
  6. 适合初学者使用的Mac绘图软件推荐
  7. Kubernetes查看日志命令
  8. 部队计算机操作使用教案,计算机基础教案2(键盘鼠标操作).doc
  9. 顺序表构建学生信息管理系统(C++)
  10. 基于单片机at89s52的频率计设计c语言程序,基于AT89S52单片机的数字频率计的设计...