首页 文章

有没有办法使用Apache POI在Excel中创建数据透视表?

提问于
浏览
9

我目前正致力于Excel的自动化,并添加了这样我已经很好地利用了Apache POI库 .

由于我在excel工作簿中存储了大量数据,因此我正在尝试创建数据透视表 .

Is there any way to create Pivot tables using POI ?

我的要求是我需要在新的Excel工作簿或我存储数据的同一工作簿中创建数据透视表 .

2 回答

  • 20

    “快速指南”已经过时了 .

    change log将此bugzilla issue称为已解决 .

    你可以看到代码here

    这是一个片段:

    public static void main(String[] args) throws FileNotFoundException, IOException, InvalidFormatException {
            XSSFWorkbook wb = new XSSFWorkbook();
            XSSFSheet sheet = (XSSFSheet) wb.createSheet();
    
            //Create some data to build the pivot table on
            setCellData(sheet);
    
            XSSFPivotTable pivotTable = sheet.createPivotTable(new AreaReference("A1:D4"), new CellReference("H5"));
            //Configure the pivot table
            //Use first column as row label
            pivotTable.addRowLabel(0);
            //Sum up the second column
            pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 1);
            //Set the third column as filter
            pivotTable.addColumnLabel(DataConsolidateFunction.AVERAGE, 2);
            //Add filter on forth column
            pivotTable.addReportFilter(3);
    
            FileOutputStream fileOut = new FileOutputStream("ooxml-pivottable.xlsx");
            wb.write(fileOut);
            fileOut.close();
        }
    
  • 1

    不,你不能 . 阅读here

    •图表您目前无法创建图表 . 但是,您可以在Excel中创建图表,使用HSSF修改图表数据值并写出新的电子表格 . 这是可能的,因为POI试图尽可能保持现有记录的完整性 . •无法创建宏宏 . 但是,读取和重写包含宏的文件将安全地保留宏 . •数据透视表不支持生成数据透视表 . 据报道,可以安全地读取和重写包含数据透视表的文件 .

相关问题