java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java创建Excel数据透视表

使用Java创建Excel数据透视表的完整示例代码

作者:用户372157426135

在如果需要在 Java 程序中自动生成分析报表,也可以通过代码创建 Excel 数据透视表,避免手动打开 Excel 并重复设置,本文介绍如何使用 Java 创建 Excel 数据透视表,并设置字段完成数据汇总,有需要的小伙伴可以了解下

在处理 Excel 数据时,原始数据通常以明细表形式保存。例如,一份销售记录可能包含日期、地区、产品、销售数量以及销售金额等信息。

当数据量增加后,直接查看明细数据并不方便。Excel 中的数据透视表(Pivot Table)可以根据已有数据快速完成汇总分析,例如:

如果需要在 Java 程序中自动生成分析报表,也可以通过代码创建 Excel 数据透视表,避免手动打开 Excel 并重复设置。本文介绍如何使用 Java 创建 Excel 数据透视表,并设置字段完成数据汇总。

环境准备

创建 Java 项目后,通过 Maven 添加 Excel 处理依赖。

在 ​​pom.xml​​ 中添加:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>16.6.5</version>
    </dependency>
</dependencies>

然后导入相关类:

import com.spire.xls.*;

准备 Excel 数据

创建数据透视表之前,需要先准备数据源。

例如,有一份销售数据:

日期地区产品销售额
2026-01-01华东手机5000
2026-01-02华南笔记本8000
2026-01-03华东平板3000
2026-01-04华北手机6000

其中:

下面的示例首先加载包含销售数据的 Excel 文件,然后根据数据区域创建数据透视表。([​​e-iceblue.com​​][1])

创建 Excel 数据透视表

创建数据透视表主要包含以下步骤:

  1. 加载 Excel 文件;
  2. 获取数据源区域;
  3. 创建 ​​PivotCache​​;
  4. 添加 ​​PivotTable​​;
  5. 设置数据透视表样式;
  6. 保存结果文件。

完整代码如下:

import com.spire.xls.*;

public class CreatePivotTable {

    public static void main(String[] args) {

        // 创建 Workbook 对象
        Workbook workbook = new Workbook();

        // 加载包含销售数据的 Excel 文件
        workbook.loadFromFile("销售数据.xlsx");

        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 获取数据源区域
        CellRange dataRange = sheet.getCellRange("A1:D5");

        // 根据数据区域创建数据透视表缓存
        PivotCache cache = workbook.getPivotCaches().add(dataRange);

        // 在指定位置创建数据透视表
        PivotTable pivotTable = sheet.getPivotTables().add("销售统计", sheet.getCellRange("F3"), cache);

        // 设置数据透视表样式
        pivotTable.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium10);

        // 保存结果文件
        workbook.saveToFile("创建数据透视表.xlsx", ExcelVersion.Version2016);

        // 释放资源
        workbook.dispose();
    }
}

运行代码后,会在工作表 ​​F3​​ 位置创建一个名为“销售统计”的数据透视表。

不过,此时数据透视表还没有指定统计字段,需要进一步设置行字段和数据字段。

设置数据透视表字段

数据透视表中的字段主要分为:

例如,希望按照“地区”统计“销售额”,需要:

下面的代码完整打开已经创建好的数据透视表,并设置字段:

import com.spire.xls.*;
import com.spire.xls.core.IPivotField;

public class SetPivotFields {

    public static void main(String[] args) {

        // 创建 Workbook 对象
        Workbook workbook = new Workbook();

        // 加载包含数据透视表的 Excel 文件
        workbook.loadFromFile("创建数据透视表.xlsx");

        // 获取工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 获取第一个数据透视表
        PivotTable pivotTable = sheet.getPivotTables().get(0);

        // 获取“地区”字段,并设置为行字段
        IPivotField regionField = pivotTable.getPivotFields().get("地区");
        regionField.setAxis(AxisTypes.Row);

        // 添加“销售额”字段,并进行求和统计
        pivotTable.getDataFields().add(pivotTable.getPivotFields().get("销售额"), "销售额合计", SubtotalTypes.Sum);

        // 保存结果
        workbook.saveToFile("设置字段后的数据透视表.xlsx", ExcelVersion.Version2016);

        // 释放资源
        workbook.dispose();
    }
}

生成后的数据透视表结构类似:

地区销售额合计
华东8000
华南8000
华北6000

其中,“地区”负责分类,“销售额”负责汇总计算。

添加多个数据统计字段

一个数据透视表可以同时添加多个统计字段。

例如,除了销售额,还需要统计销售数量,可以继续添加字段:

import com.spire.xls.*;
import com.spire.xls.core.IPivotField;

public class AddMultipleDataFields {

    public static void main(String[] args) {

        // 创建 Workbook 对象
        Workbook workbook = new Workbook();

        // 加载包含数据透视表的 Excel 文件
        workbook.loadFromFile("创建数据透视表.xlsx");

        // 获取工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 获取数据透视表
        PivotTable pivotTable = sheet.getPivotTables().get(0);

        // 添加销售额汇总字段
        pivotTable.getDataFields().add(pivotTable.getPivotFields().get("销售额"), "销售额合计", SubtotalTypes.Sum);

        // 添加销售数量汇总字段
        pivotTable.getDataFields().add(pivotTable.getPivotFields().get("销售数量"), "销售数量合计", SubtotalTypes.Sum);

        // 保存文件
        workbook.saveToFile("多字段数据透视表.xlsx", ExcelVersion.Version2016);

        // 释放资源
        workbook.dispose();
    }
}

这样生成的数据透视表中,可以同时查看多个指标。

保存生成的 Excel 文件

完成数据透视表设置后,可以通过 ​​saveToFile()​​ 方法保存结果:

import com.spire.xls.*;

public class SavePivotTable {

    public static void main(String[] args) {

        // 创建 Workbook 对象
        Workbook workbook = new Workbook();

        // 加载 Excel 文件
        workbook.loadFromFile("设置字段后的数据透视表.xlsx");

        // 保存新的 Excel 文件
        workbook.saveToFile("销售分析报表.xlsx", ExcelVersion.Version2016);

        // 释放资源
        workbook.dispose();
    }
}

生成的 Excel 文件可以直接使用 Microsoft Excel 打开,并继续进行筛选或调整。

注意事项

数据源需要包含字段名称

创建数据透视表时,第一行通常需要作为字段标题。

例如:

正确:

地区产品销售额
华东手机5000

不建议:

ABC
华东手机5000

字段名称会影响后续字段设置。

字段名称需要完全匹配

设置字段时:

pivotTable.getPivotFields().get("地区")

其中 ​​"地区"​​ 必须与 Excel 数据源中的标题完全一致。

如果名称不匹配,程序无法正确找到对应字段。

大数据量处理

当数据源包含大量记录时:

总结

数据透视表适合对结构化 Excel 数据进行分类、汇总和分析。

通过 Java 创建数据透视表,可以将 Excel 报表生成流程自动化。开发者只需要准备数据源,然后通过代码设置字段和统计方式,即可生成包含汇总结果的 Excel 文件。

这种方式适用于自动生成统计报表、系统导出分析文件等场景。

到此这篇关于使用Java创建Excel数据透视表的完整示例代码的文章就介绍到这了,更多相关Java创建Excel数据透视表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文