问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

EXCEL大数据量导出的解决方案

发布网友 发布时间:2022-04-23 18:11

我来回答

1个回答

热心网友 时间:2022-06-13 16:34

EXCEL大数据量导出的解决方案
将web页面上显示的报表导出到excel文件里是一种很常见的需求。润乾报表的类excel模型,支持excel文件数据无失真的导入导出,使用起来非常的方便。然而,当数据量较大的情况下,excel本身的支持最多65535行数据的问题便凸显出来。下面就给出大数据量导出到excel的解决方案。
首先,对于数据超过了65535行的问题,很自然的就会想到将整个数据分块,利用excel的多sheet页的功能,将超出65535行后的数据写入到下一个sheet页中,即通过多sheet页的方式,突破了最高65535行数据的限定。
具体做法就是:
单独做一个链接,使用JSP导出,在JSP上通过程序判断报表行数,超过65535行后分SHEET写入。这样这个问题就得以解决了。
更进一步地说,在这种大数据量的报表生成和导出中,要占用大量的内存,尤其是在使用TOMCAT的情况下,JVM最高只能支持到2G内存,则会发生内存溢出的情况。此时的内存开销主要是两部分,一部分是该报表生成时的开销,另一部分是该报表生成后写入一个EXCEL时的开销。由于JVM的GC机制是不能强制回收的,因此,对于此种情形,我们给出一个变通的解决方案。
首先,将该报表设置起始行和结束行参数,在API生成报表的过程中,分步计算报表,比如一张20万行数据的报表,在生成过程中,可通过起始行和结束行分4-5次进行。这样,就降低了报表生成时的内存占用,在后面报表生成的过程中,如果发现内存不够,即可自动启动JVM的GC机制,回收前面报表的缓存。
导出EXCEL的过程,放在每段生成报表之后立即进行,改多个SHEET页为多个EXCEL,即在分步生成报表的同时分步生成EXCEL,则通过POI包生成EXCEL的内存消耗也得以降低。通过多次生成,同样可以在后面EXCEL生成所需要的内存不足时,有效回收前面生成EXCEL时占用的内存。
再使用文件操作,对每个客户端的导出请求在服务器端根据SESSIONID和登陆时间生成唯一的临时目录,用来放置所生成的多个EXCEL,然后调用系统控制台,打包多个EXCEL为RAR或者JAR方式,最终反馈给用户一个RAR包或者JAR包,响应客户请求后,再次调用控制台删除该临时目录。
使用这种方法,首先是通过分段运算和生成,有效降低了报表从生成结果到生成EXCEL的内存开销。其次是通过使用压缩包,响应给用户的生成文件体积大大缩小,降低了多用户并发访问时服务器下载文件的负担,有效减少多个用户导出下载时服务器端的流量,从而达到进一步减轻服务器负载的效果。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 白色皮革衣服脏了怎么清洗?我用洗衣液擦怎么也擦不掉,怎么办? 大数据时代对会计报表有什么影响 白色仿皮的手提包染色了怎么清洗? 大数据报告要怎么做,哪儿有教程? 如何能吸引粉丝? 大数据量的表如何做分区 白色的仿皮包包被蓝色牛仔裤染色怎么清洗。 birt大数据量数据导出报表,如何提高性能? 怎样做一名文明的粉丝呢? java大数据量报表怎么处理 仿皮衣怎么清洗 仿皮衣服怎么洗 仿皮的衣服脏了怎么清洗呢?能不能用水洗呢 如何成为别人的粉丝? 布艺沙发旁边上白色仿皮脏了怎么清洗 白色的皮革沙发脏了,用什么东西能洗掉。 白色仿皮草大衣如何清洗? 长按微信右下角的“微信”图标,会有什么功能吗? 我的微信怎么右下角有个V? 微信右下角头像v字怎么弄? 大数据可视化工具最后做出来的报表效果是怎么样的? 如何去除白色皮革上的顽固污渍(墨水印,圆珠笔印等)? 客户关系管理CRM,企业进销存管理,在线销售系统哪的产品可以处理大数据量传输和数据统计采集报表? 白色仿皮的旅游鞋,怎么清洗才能洁白如新? 润乾报表大数据量展现报错内存溢出怎么办呀? 怎么解决访问大数据,报表速度慢的问题 什么是大数据,看完这篇就明白了 大数据 BI两者什么关系?企业用BI吗 大数据量表格查询速度突然变慢怎么回事 润乾报表在线导入大数据量excel问题 大数据量情况下的存货核算如何做 设计一个大数据实时分析平台要怎么做呢? 暴走神话阵容推荐? 暴走神话全民竞技怎么玩 一个是小米手机一个是苹果手机光遇能加好友吗? 暴走神话如何获得阿佛洛狄忒? 暴走神话公会祈火是干嘛的 暴走神话如来的皮肤怎么领? 雾之宫的原名叫什么暴走神话 John翻译成中文是什么?