zoukankan      html  css  js  c++  java
  • Java 在Excel中创建透视表

    本文内容介绍通过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();
        }
    }

    透视表创建结果:

    <完>

  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/Yesi/p/12895023.html
Copyright © 2011-2022 走看看