POI终极解决方案:模板开发

这里写图片描述

InputStream is = new FileInputStream(new File("c:\\tOUTPRODUCT.xls"));
        Workbook wb = new HSSFWorkbook(is);     //打开一个模板文件,工作簿
        Sheet sheet = wb.getSheetAt(0);         //获取到第一个工作表

        Row nRow = null;
        Cell nCell = null;
        int rowNo = 0;                          //行号
        int colNo = 1;                          //列号

        //获取模板上的单元格样式
        nRow = sheet.getRow(2);

        //客户的样式
        nCell = nRow.getCell(1);
        CellStyle customStyle = nCell.getCellStyle();   

POI升级xls excel2003 xlsx 2007以上版本

1) 升级对象
2) 升级模板
3) 升级写出的xlsx

POI 百万数据的打印

1) 从数据库读取数据,LIST在构造时十分耗费内存,还占用CPU资源
2) Xlsx一个单sheet可以支持1048576条数据。它加工这些数据时,都是暂时放在内存中。报内存堆溢出。

POI意识到这个问题,它在高版本解决了海量数据导出时性能问题。可以实现非常平滑的导出。

优化方法

1) TOMCAT 启动参数变大
2) Myeclipse启动参数调整
3) Jvm启动参数调整
4 ) POI ooxml SXSSF对象

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>

这里写图片描述

原理和思路:
在打印过程中,已经加工完的对象,临时存到一个临时文件中,它采用xml临时文件。最终处理完时,将这些临时内容写入到最终的xlsx文件中。

这个对象不能使用模板。
只能用于到数据量的导出。(没有格式)

d) 实际工作中

HSSF 比较多,兼顾客户的环境
XSSF 应用比较少,当数据量比较大时,才采用
SXSSF 只用在海量数据的导出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值