Apache POI报表技术

Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案。

效率高

支持公式,宏,一些企业应用上会非常实用

能够修饰单元格属性

支持字体、数字、日期操作

不成熟,代码不能跨平台,貌似不少同行在使用工程中还碰到让人郁闷的BUG(最近的项目中也是遇到了一些bug,不过目前没有查出来是代码的问题还是POI的问题,总之问题很诡异,数据替代参数总有失败的。关于不能跨平台这一说,我也没有试验过,不过Java不是跨平台吗?POI是JAVA的一个组件,怎么就不能跨平台了呢,总之这些问题还需要在以后的项目中多多实践,才能比较出区别之处。)

POI实现模板打印

     我们系统根据用户习惯,采用excel方式,作为业务输出打印。打印时POI是有问题,打印时代码量非常大,样式代码非常多,(常保存,样式和字体对象创建过多)。打印时非常难控制。我进行改造,我使用模板来开发,在模板中定义列宽(POI操作列宽时有BUG,计算非常繁琐),还可以定义静态文件,例如标题部分等静态文字的内容,打印纸质方向,打印页面标题,页眉页脚,都可以在模板中设置。首先无需记忆复杂特殊api。设置字体、样式也可以直接在模板中定义。打印时先读取模板,只处理业务数据的打印即可。

POI海量数据导出系统中备份数据和恢复数据。

       操作excle主要有jxl和poi两种方式,jxl在处理数据时比早期的poi快。(poi早期对象,处理时都是将加工的数据存放在内存中,如果数据量很多,很容易造成堆溢出,同时它占用CPU和大量内存,导致其他业务也无法正常完成。)poi在新版本中改善这个性能瓶颈。对大数据量的导出做了优化。

        使用ooxml技术,使用SXSSF对象,当数据创建到指定数量时,自动写缓存,将它内容输出到临时文件中。这个临时文件是一个xml,相比内存中对象的结构非常简单。只保留数据的信息。保存的数据量也非常少。这样就可以形成大数量的导出。例如:杰信项目中,购销合同业务,它有很多历史信息,积累了很多年,数据量达到近百万。导致系统变慢,我们采用poi导出数据备份到excel文件中。将这部分历史信息从当前表删除。在打印中就可以直接实现。(excel单sheet可以支持1048576)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值