Java 在Excel中创建透视表

Wesley13
• 阅读 945

本文内容介绍通过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中创建透视表

<完>

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
UIPath入门系列三之操作Excel表格
介绍如何使用UIPath操作Excel一、Excel/Workbooks与DataTables的区别Excel/Workbooks是一个excel文件,里面可以存储各种类型的数据,可格式化,布局,合并单元格及多个数据表DataTables只是最简单的电子表格数据类型,只有行和列和可选标题
CuterCorley CuterCorley
3年前
Python数据分析实战(2)使用Pandas进行数据分析
一、Pandas的使用1.Pandas介绍Pandas的主要应用包括:数据读取数据集成透视表数据聚合与分组运算分段统计数据可视化Pandas的使用很灵活,最重要的两个数据类型是DataFrame和Series。对DataFrame最直观的理解是把它当成一个Excel表格文件,如下:索引是从0开始的,也
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java使用POI将数据导出放入Excel
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术。POI介绍使用springboot导入相关依赖获取数据(自行处理)完整代码实例:创建excel,将数据写入excel1.POI介绍要想使用POI对Excel进行操作,我们需要先了
Stella981 Stella981
3年前
ABAP学习(16):ABAP2XLSX,操作excel
ABAP2XLSX   ABAP2XLS是一个操作EXCEL的开源项目,相比较OLE2和DOI方式操作excel更加方便。   ABAP中搜索ZDEMO\_EXCEL\搜索Program可以查看SAP提供的示例程序,实现多种Excel。1.创建excel   Excel类:zcl\_excel类
Stella981 Stella981
3年前
EasyExcel写入百万级数据到多sheet
EasyExcel是什么?快速、简单避免OOM的java处理Excel工具一、项目需求    从mongo库中查询数据,导出到excel文件中。但是动态导出的excel有多少列、列名是什么、有多少sheet页都需要动态获取。所以生成的excel也必须是动态生成,不能通过注解配置对象映射。而且写入的数据量,有可能达到100W级,使用传统的PO
LeeFJ LeeFJ
1年前
Foxnic-SQL (15) —— 使用记录集导入或导出Excel
很多时候,我们需要将外部Excel表中的数据导入到数据库,或是需要将某个查询结果导出到Excel文件中,对于这种简单的操作,FoxnicSQL已经内置了ExcelReader和ExcelWriter用于处理Excel数据。本文中的示例代码均可在https://gitee.com/LeeFJ/foxnicsamples项目中找到。读取Excel到RcdSetFoxnicSQL使用ExcelReader类读取Excel中某个sheet的数据,这些数据将被读取到RcdSet,通过RcdSet可以完成数据库保存等操作。在读取Excel前需要定义Excel结构,将Excel列映射到数据库字段,如下代码所示。一旦Excel数据转换成RcdSet,开发人员就可以去做其它更多额外的数据处理。
秋桐 秋桐
1年前
Java 向Excel中写入数组
在编辑Excel文档时,除了借助办公软件手动在工作表中输入数据外,也可以以编程的方式来进行此项操作。以Java编程为例。通过使用免费版的FreeSpire.XLSforJava库,可以凭借代码,轻松高效地向Excel写入一维和二维数组。相关的示例代码和代码
秋桐 秋桐
1年前
通过Java程序将Excel转换为PDF文档格式
Excel广泛应用于商业、教育等众多领域,具有丰富的数据处理和分析功能,包括计算、图表、排序、筛选、数据透视表等。在处理大型数据内容时,Excel绝对是最佳工具。但如果要将处理好的数据内容进行保存和传输的话,转换为PDF文档格式或许更加可靠。PDF文档的稳定布局可以避免数据内容被随意更改,即使是在多次传输后也能保证数据的准确性。将Excel转换为PDF的工具有很多。这里我将介绍如何通过编程的方法来实现该功能。以Java代码为例,使用到的产品是FreeSpire.XLSforJava(免费版)。下面是程序环境和示例代码。
秋桐 秋桐
1年前
Java 查找和替换 Excel 数据
Excel电子表格是储存和处理数据的不二选择。当数据内容过多时,我们可以通过一些快捷工具来进行操作。“查找和替换”就是其中之一,比起手动搜索和更新数据,这个功能能帮助我们在大型电子表格中快速获取目标数据,并更改为新数据。Microsoft办公软件已提供了该功能,这里就不再赘述。今天想为大家分享的是如何通过代码来查找和替换数据(以Java代码为例)。使用到的是FreeSpire.XLSforJava组件。