JAVA导出Excel数据量过大(50万以上)内存溢出如何解决? javaexcel内存溢出 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方案1 我不清楚方案2 这个问题我碰到过,当时我导出生成多个excel然后打包出来的,这个是可行的方案3 也是可行的,但是我没试过,方案4 这个方案整体思路和方案2是一样的,也是先生成excel 写了一个sheet'后,重新再去写这个excel 不知道POI写Excel流的时候能不能分开写;分批次写进,不要让内存占用太大。 你把50W条数据分批次查询到内存后利用POI来写入,如果POI不支持分批次写流,你参考POI源码进行修正。 那你打包的代码能传上分享下么?不方便的话传关键代码也行!http://download.csdn.net/detail/jimmy609/5840061#commenthttp://blog.csdn.net/jimmy609/article/details/9629301之前总结的,代码稍乱,自己整理下吧~~~ 方案一:poi最新版已经解决了这个问题,导出过几十万的,没有问题:关键性代码如下:FileOutputStream fOut = new FileOutputStream(savePath);Workbook workbook = new SXSSFWorkbook(500);//每次缓存500条到内存,其余写到磁盘。Sheet sheet = workbook.createSheet();官网案例地址:http://poi.apache.org/spreadsheet/how-to.html#sxssf方案二:客户没有特别指定,可以使用csv格式的excel,轻量型的导出方式。方法:自己新建一个csv格式的excel,然后右键编辑查看。看完之后你就明白了,csv其实就是一个txt文本,纯字符串拼接。接下来当成txt文件来读或写就可以了。 要么多个sheet要么多个excel文件,我记得一个sheet好像只能写65535行 poi3.8以上没有问题,看看我的博客里有。 这个应该可以,靠谱,分批写入,java poi 我之前试过导出20w的,可是sheet有65535上限,另new sheet结果怎么sheet可以建立就是不进数据...客户催的急,后来只能暂时变通着导出多张excel了。。 一生必看的五个故事 struts2的checkboxlist显示问题! mysql建表语法..帮我回答下相关外键的语法,谢谢!绝对不难 求救!关于在windows2000 Professional 下的浏览器下载问题 急 applet不能访问本地资源 我要做搜索引擎,大家帮我看看,谢了 如何判断字符串中某一字符的数量是多少 在javascript怎样判断按了键盘的上、下、左、右键 请问有什么工具可以看我的某个端口(比如:7001)正在做什么? jsp中文参数问题。为什么大家都不会? 只要有一个select做了选择就计算合计 Hessian 调用webservice
http://download.csdn.net/detail/jimmy609/5840061#commenthttp://blog.csdn.net/jimmy609/article/details/9629301之前总结的,代码稍乱,自己整理下吧~~~
关键性代码如下:FileOutputStream fOut = new FileOutputStream(savePath);
Workbook workbook = new SXSSFWorkbook(500);//每次缓存500条到内存,其余写到磁盘。
Sheet sheet = workbook.createSheet();官网案例地址:http://poi.apache.org/spreadsheet/how-to.html#sxssf方案二:客户没有特别指定,可以使用csv格式的excel,轻量型的导出方式。
方法:自己新建一个csv格式的excel,然后右键编辑查看。看完之后你就明白了,csv其实就是一个txt文本,纯字符串拼接。
接下来当成txt文件来读或写就可以了。
客户催的急,后来只能暂时变通着导出多张excel了。。