ITPub博客

首页 > 应用开发 > Java > Java 创建 Excel 数据透视表

Java 创建 Excel 数据透视表

原创 Java 作者:Jazzz 时间:2020-04-15 16:47:19 0 删除 编辑

E xcel数据透视表 具有 强大 的 数据处理 功能,能够使 表格中的 数据 更加 直观化 。 使用 E xcel 数据透视表 , 能方便用户快速 的 排序、 筛选各 种 数据 ,同时也能满足用户对 不同数据汇总 的 需求。本文将介绍如何在Java应用程序中创建Excel数据透视表及设置透视表的格式。


使用工具 : Free Spire. XLS  for Java   ( 免费版 )


Jar文件导入方法

方法一:

下载最新的 Free Spire. XLS  for Java 包并解压缩 , 然后从lib文件夹下, 将 Spire. Xls .jar包 导入 到你的Java应用程序中。 ( 导入成功 后 如下图所示 )

 


方法二:

通过 Maven仓库安装 导入 。 详细的操作步骤 请参考链接 :

https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html

 

 

Java代码示例


import com.spire.xls.*;
public class CreatePivotTable {
    public static void main(String[] args)  {
        
        //加载示例文档
        Workbook workbook = new Workbook();
        workbook.loadFromFile("Sample.xlsx");
        
        //获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);
        
        //为需要汇总和创建分析的数据创建缓存
        CellRange dataRange = sheet.getCellRange("B1:D11");
        PivotCache cache = workbook.getPivotCaches().add(dataRange);
        
        //使用缓存创建数据透视表,并指定透视表的名称以及在工作表中的位置
        PivotTable pt = sheet.getPivotTables().add("Pivot Table", sheet.getCellRange("F4"), cache);
        
        //添加行字段
        PivotField pf=null;
        if (pt.getPivotFields().get("区域") instanceof PivotField){
          pf= (PivotField) pt.getPivotFields().get("区域");
        }
        pf.setAxis(AxisTypes.Row);
        PivotField pf2 =null;
        if (pt.getPivotFields().get("商品") instanceof PivotField){
          pf2= (PivotField) pt.getPivotFields().get("商品");
        }
        pf2.setAxis(AxisTypes.Row);
        
        //添加值字段
        pt.getDataFields().add(pt.getPivotFields().get("金额"), "求和项:金额", SubtotalTypes.Sum);
        
        //设置透视表样式
        pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium12);
        
        //保存文档
        workbook.saveToFile("透视表.xlsx", ExcelVersion.Version2013);
    }
}

该代码演示的是汇总 每个区域 中 各种商品销售的金额 ,生成的透视表如下图 :



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69968349/viewspace-2686322/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-03-25

  • 博文量
    26
  • 访问量
    23375