JAVA导出EXCEL

首先有个JAVA老程序,查询大约十万条数据导出xls文件,由于xls文件最大是65536行,所以会生成二个工作表Sheet,用户觉得不方便。希望生成Excel 2010版,就是xlsx格式的文件。

1、网上找了一下,java生成xls评论最好的是apache poi,发现系统已用,但是旧版本,并且无法替换。后来想到了一个办法,找到poi的源码,改了一下路径 ,例如org.apache.poi.xssf.usermodel.XSSFCell;  改为org.apache.poi.xssf.skg.usermodel.XSSFCell;   然后生成一个jar来调来,但是效果不好,太慢,数据达到三万条左右,服务器都快死。

2、分析过xlsx文件,它是一个ZIP文件,里面是xml文件。所以就想直接生成xml文件,再压缩成ZIP文件。但经过几次尝试,会出现数字类型有问题,还有经常会有异常,生成的文件打不开。

3、想通过excel的数据来源,直接用sql查询出来,但这个要在用户电脑上安装数据库的客户端,后来就放弃了

4、通过excel打开文件框里面的文件类型,一个一个的测试,发现dif类型支持超过7万,并且它本身是文件格式。然后找相关的资料,找到了JavaDIF。分析它,它是通过建立对象来生成的,但数据量太大时,会内存溢出。由于我不需要修改文件,就直接生成文本格式的方式,生成dif文件。

代码在CreateDifFile方法,需要修改一下

https://pan.baidu.com/s/1jIhyWpo

 

转载于:https://my.oschina.net/u/3318604/blog/908317

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值