本文内容介绍通过Java程序在Excel表格中根据数据来创建透视表。
环境准备
需要使用Excel类库工具—Free Spire.XLS for Java,这里使用的是免费版,可通过官网下载Jar包并解压,手动导入lib文件夹下的Spire.Xls.jar到Java程序;或者也可以通过Maven仓库下载导入。
Java****代码示例
1import com.spire.xls.*; 2 3public class CreatePivotTable { 4 public static void main(String[] args) { 5 //加载Excel测试文档 6 Workbook wb = new Workbook(); 7 wb.loadFromFile("test.xlsx"); 8 9 //获取第一个的工作表 10 Worksheet sheet = wb.getWorksheets().get(0); 11 12 //为需要汇总和分析的数据创建缓存 13 CellRange dataRange = sheet.getCellRange("A1:D10"); 14 PivotCache cache = wb.getPivotCaches().add(dataRange); 15 16 //使用缓存创建数据透视表,并指定透视表的名称以及在工作表中的位置 17 PivotTable pt = sheet.getPivotTables().add("PivotTable",sheet.getCellRange("A12"),cache); 18 19 //添加行字段1 20 PivotField pf1 = null; 21 if (pt.getPivotFields().get("月份") instanceof PivotField){ 22 pf1 = (PivotField) pt.getPivotFields().get("月份"); 23 } 24 pf1.setAxis(AxisTypes.Row); 25 26 //添加行字段2 27 PivotField pf2 = null; 28 if (pt.getPivotFields().get("厂商") instanceof PivotField){ 29 pf2 = (PivotField) pt.getPivotFields().get("厂商"); 30 } 31 pf2.setAxis(AxisTypes.Row); 32 //设置行字段的标题 33 pt.getOptions().setRowHeaderCaption("月份"); 34 35 //添加列字段 36 PivotField pf3 = null; 37 if (pt.getPivotFields().get("产品") instanceof PivotField){ 38 pf3 = (PivotField) pt.getPivotFields().get("产品"); 39 } 40 pf3.setAxis(AxisTypes.Column); 41 //设置列字段标题 42 pt.getOptions().setColumnHeaderCaption("产品"); 43 44 //添加值字段 45 pt.getDataFields().add(pt.getPivotFields().get("总产量"),"求和项:总产量",SubtotalTypes.Sum); 46 47 //设置透视表样式 48 pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleDark12); 49 50 //保存文档 51 wb.saveToFile("数据透视表.xlsx", ExcelVersion.Version2013); 52 wb.dispose(); 53 } 54}
透视表创建结果:

<完>