一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于流式读取的大数据量Excel文件导出方法及系统与流程

2022-11-19 09:26:24 来源:中国专利 TAG:

基于流式读取的大数据量excel文件导出方法及系统
技术领域
1.本发明属于数据导出技术领域,具体涉及一种基于流式读取的大数据量excel文件导出方法及系统的设计。


背景技术:

2.随着信息技术的发展与应用,目前excel导出功能已经成为各类信息系统最为基本的功能需求,目前处理excel数据导出的方法通常包括以下两种:
3.第一,一次性从数据库中查询出结果集写入excel文件后返回,这种方法在数据规模大的情况下会造成服务端内存溢出,导致导出任务失败。
4.第二,分批次查询出结果集写入excel文件后返回,这种方法在数据规模大的情况下会消耗过多的业务时间,且在多线程情况下也存在内存溢出风险。


技术实现要素:

5.本发明的目的是为了解决现有技术中大数据量情况下excel文件导出时占用内存资源过大导致系统性能下降,甚至造成内存溢出导致导出任务失败的问题,提出了一种基于流式读取的大数据量excel文件导出方法及系统。
6.本发明的技术方案为:第一方面,本发明提供了一种基于流式读取的大数据量excel文件导出方法,包括以下步骤:
7.s1、接收客户端发出的数据导出请求,读取配置文件中待处理数据的参数配置,并根据待处理数据的参数配置循环读取既定条数数据至内存中的待处理数据队列中。
8.s2、从待处理数据队列中逐条读取数据写入excel文件,并及时释放处理完成数据占用的内存空间及excel临时文件缓存空间,直至待处理数据队列中全部数据写入完成。
9.s3、将生成的excel文件发送至客户端供用户下载保存。
10.进一步地,步骤s1包括以下分步骤:
11.s11、通过应用服务器接收客户端发出的数据导出请求。
12.s12、读取配置文件中待处理数据的参数配置。
13.s13、根据数据导出请求传递的数据条件组装向数据库发送的查询请求的查询条件。
14.s14、与数据库建立连接并发送查询请求。
15.s15、根据待处理数据的参数配置循环读取既定条数数据至内存中的待处理数据队列中。
16.进一步地,步骤s12中待处理数据的参数配置包括待处理数据的队列长度和excel每个sheet页的容量限制。
17.进一步地,步骤s2包括以下分步骤:
18.s21、判断待处理数据队列中是否有数据待写入,若是则进入步骤s22,否则进入步骤s3。
19.s22、根据excel每个sheet页的容量限制判断当前sheet页是否容量已满,若是则进入步骤s23,否则进入步骤s24。
20.s23、刷新当前sheet页数据占用缓存至excel文件,新建sheet页作为当前sheet页。
21.s24、从待处理数据队列中读取一条数据写入当前sheet页,释放该条数据占用内存,返回步骤s21。
22.进一步地,步骤s3包括以下分步骤:
23.s31、刷新最后一个sheet页数据占用缓存至excel文件,关闭所有数据连接,清空所有缓存。
24.s32、将生成的整个excel文件发送至客户端供用户下载保存。
25.第二方面,本发明提供了一种基于流式读取的大数据量excel文件导出系统,用于配置执行上述基于流式读取的大数据量excel文件导出方法。
26.本发明的有益效果是:
27.(1)本发明基于流式读取技术,使得大数据量情况下,处理每个用户导出请求占用的内存空间既定,且在处理过程中及时释放内存,有效解决了现有技术中大数据量情况下excel文件导出时占用内存资源过大导致系统性能下降,甚至造成内存溢出导致导出任务失败的问题。
28.(2)本发明中待处理数据队列长度可根据应用服务器可用内存容量以及系统访问并发量进行灵活设定,通过流式读取技术的应用,处理每个用户导出请求占用的内存空间既定,极大程度上缓解大量数据占用内存导致的内存溢出问题。
29.(3)本发明通过及时释放处理完成数据所占用内存及excel中sheet页所占用缓存,最大限度降低了excel文件数据写入过程中的内存占用。
附图说明
30.图1所示为本发明实施例提供的基于流式读取的大数据量excel文件导出方法流程图。
31.图2所示为本发明实施例提供的步骤s1的分步骤流程图。
32.图3所示为本发明实施例提供的步骤s2的分步骤流程图。
33.图4所示为本发明实施例提供的步骤s3的分步骤流程图。
具体实施方式
34.现在将参考附图来详细描述本发明的示例性实施方式。应当理解,附图中示出和描述的实施方式仅仅是示例性的,意在阐释本发明的原理和精神,而并非限制本发明的范围。
35.实施例一:
36.本发明实施例提供了一种基于流式读取的大数据量excel文件导出方法,如图1所示,包括以下步骤s1~s3:
37.s1、接收客户端发出的数据导出请求,读取配置文件中待处理数据的参数配置,并根据待处理数据的参数配置循环读取既定条数数据至内存中的待处理数据队列中。
38.如图2所示,步骤s1包括以下分步骤s11~s15:
39.s11、通过应用服务器接收客户端发出的数据导出请求。
40.s12、读取配置文件中待处理数据的参数配置。
41.本发明实施例中,步骤s12中待处理数据的参数配置包括待处理数据的队列长度和excel每个sheet页的容量限制。
42.本发明实施例中,excel每个sheet页的容量限制默认为500000,最大支持1048576。
43.s13、根据数据导出请求传递的数据条件组装向数据库发送的查询请求的查询条件。
44.s14、与数据库建立连接并发送查询请求。
45.s15、根据待处理数据的参数配置循环读取既定条数数据至内存中的待处理数据队列中。
46.步骤s1中,待处理数据队列长度可根据应用服务器可用内存容量以及系统访问并发量进行灵活设定,通过流式读取技术的应用,处理每个用户导出请求占用的内存空间既定,极大程度上缓解大量数据占用内存导致的内存溢出问题。
47.s2、从待处理数据队列中逐条读取数据写入excel文件,并及时释放处理完成数据占用的内存空间及excel临时文件缓存空间,直至待处理数据队列中全部数据写入完成。
48.如图3所示,步骤s2包括以下分步骤s21~s24:
49.s21、判断待处理数据队列中是否有数据待写入,若是则进入步骤s22,否则进入步骤s3。
50.s22、根据excel每个sheet页的容量限制判断当前sheet页是否容量已满,若是则进入步骤s23,否则进入步骤s24。
51.s23、刷新当前sheet页数据占用缓存至excel文件,新建sheet页作为当前sheet页。
52.s24、从待处理数据队列中读取一条数据写入当前sheet页,释放该条数据占用内存,返回步骤s21。
53.步骤s2通过及时释放处理完成数据所占用内存及excel中sheet页所占用缓存,最大限度降低了excel文件数据写入过程中的内存占用。
54.s3、将生成的excel文件发送至客户端供用户下载保存。
55.如图4所示,步骤s3包括以下分步骤s31~s32:
56.s31、刷新最后一个sheet页数据占用缓存至excel文件,关闭所有数据连接,清空所有缓存。
57.s32、将生成的整个excel文件发送至客户端供用户下载保存。
58.实施例二:
59.本发明实施例提供了一种基于流式读取的大数据量excel文件导出系统,用于配置执行实施例一中的基于流式读取的大数据量excel文件导出方法。
60.本发明实施例中的系统可以为一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如实施例一中所述的基于流式读取的大数据量excel文件导出方法的部分或全部步骤。
61.本发明实施例中,电子设备可以包括:处理器,存储器,总线和通信接口,处理器、通信接口和存储器通过总线连接,存储器中存储有可在处理器上运行的计算机程序,处理器运行该计算机程序时执行本技术前述实施例一所提供的基于流式读取的大数据量excel文件导出方法的部分或全部步骤。
62.本发明实施例中的系统还可以为一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,执行所述计算机程序时实现如实施例一所述的基于流式读取的大数据量excel文件导出方法的部分或全部步骤。
63.上述计算机可读存储介质可以中由任何类型的易失性或非易失性存储设备或它们的组合实现,如静态随机存取存储器(sram),可擦除可维和只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘,可读存储介质可以是通用或专用计算机能够存取的任何可用介质。可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息,可读存储介质也可以是处理器组成部分,处理器和可读存储介质可以位于专用集成电路(asic)中,处理器和可读存储介质也可以作为分立组件存在于大数据量excel文件导出系统中。
64.本发明实施例可提供为方法、装置或计算机程序产品,因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且本发明可采用一个或多个其中包括有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程和/或方框图来描述的,应理解可由计算机程序指令实现流程图和/或方框图中每一流程和/或方框图、以及流程图和/或方框图的结合,可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图中一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
65.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献