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

一种Excel导出方法、装置、介质及设备与流程

2022-03-09 06:08:41 来源:中国专利 TAG:

一种excel导出方法、装置、介质及设备
技术领域
1.本技术涉及软件开发技术领域,特别是一种excel导出方法、装置、存储介质及计算机设备。


背景技术:

2.大数据量的导出生成excel在实际工作中经常用到,其本质就是从数据库中导出所需的数据,并将这些数据以excel的形式呈现。
3.大数据量的数据导出,如果没有优化过,在加载大数据量数据导出时,会出现大量的系统资源消耗和数据库资源消耗,如果在系统访问高发期和并发量较高时,很有可能对系统应用和数据库查询大批量数据时耗尽数据库资源,造成数据库或应用系统的崩溃。


技术实现要素:

4.本发明提供一种excel导出方法,对excel导出过程中的数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
5.为了解决上述问题,本发明采用的一个技术方案是:提供一种excel导出方法,该方法包括:
6.根据请求客户端的查询请求构建查询对象;
7.根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载;以及
8.将当前加载页查询结果内容转化为导出数据传输对象,之后利用导出数据传输对象生成excel数据行。
9.本发明采用的另一个技术方案是:提供一种excel导出装置,该装置包括:
10.用于根据请求客户端的查询请求构建查询对象的模块;
11.用于根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载的模块;以及
12.用于将当前加载页查询结果内容转化为导出数据传输对象,之后利用导出数据传输对象生成excel数据行的模块。
13.在本发明的另一个技术方案中,提供一种计算机可读存储介质,其存储有计算机指令,其中计算机指令被操作以执行方案中的excel导出方法。
14.在本发明的另一技术方案中,提供一种计算机设备,其包括至少一个处理器;以及与至少一个处理器进行通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的计算机指令,至少一个处理器操作计算机指令以执行方案中的excel导出方法。
15.本发明技术方案可以达到的有益效果是:本发明提出一种excel导出方法、装置、计算机可读存储介质以及计算机设备,对excel导出过程中的数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
附图说明
16.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明一种excel导出方法一个具体实施方式的示意图;
18.图2为本发明一种excel导出装置一个具体实施方式的示意图。
19.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
20.下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
21.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
22.图1所示为本发明一种excel导出方法一个具体实施方式的示意图。
23.在该具体实施方式中,excel导出方法主要包括:
24.过程s101:根据请求客户端的查询请求构建查询对象;
25.过程s102:根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载;以及
26.过程s103:将当前加载页查询结果内容转化为导出数据传输对象,之后利用导出数据传输对象生成excel数据行。
27.通过本发明提出的一种excel导出方法,对excel导出过程中的数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
28.在图1所示的具体实施方式中,本发明的excel导出方法包括过程s101:根据请求客户端的查询请求构建查询对象。此过程以便于进一步根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载。
29.具体地,本发明以物流管理平台为例,此物流管理平台的数据库中可以包含出口口岸代码、运输方式、提单号、商品批次号、总包号、物流运单编号、订单编号、重量、数量等数据属性信息。实际应用中,用户可以根据自身需求构建查询对象,例如用户需要数据库中与“北京市”相关的所有信息,那么用户可以选择北京市,数据库将“北京市”作为查询条件,也就是即将进行查询的查询对象。
30.在图1所示的具体实施方式中,本发明的excel导出方法包括过程s102:根据查询
对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载。此过程将数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
31.具体地,可以采用mybatis针对“北京市”进行查询,其中的mybatis是一款优秀的持久层框架,它支持自定义sql、存储过程以及高级映射,此处的作用主要用于映射查询。利用mybatis对接数据库查询与“北京市”相关的所有信息,最终映射查询到的与“北京市”相关的所有信息即查询结果,查询结果与查询对象(查询条件)相关,查询条件范围越大时查询结果一般越多。此处mybatis只是查询,并没有加载。
32.例如查询获取到与“北京市”相关的所有信息有5000条,现有技术是将这5000条查询结果一次性加载出来,不仅系统资源消耗大,而且数据库资源消耗也很大。本发明则是将这5000条查询结果进行分页循环加载,可以设置每页加载500条,那么5000条查询结果将被分为十页,每页500条。对查询结果进行分页循环加载。
33.在图1所示的具体实施方式中,本发明的excel导出方法包括过程s103:将当前加载页查询结果内容转化为导出数据传输对象,之后利用导出数据传输对象生成excel数据行。此过程生成excel数据行,以便于进一步导出excel文件。
34.具体地,参照过程s102,对所有查询结果进行分页循环加载,加载第一页查询结果时,将当前加载页(第一页)的查询结果内容转化为导出数据传输对象,此处的加载出的查询结果内容是从数据库中读取的原始数据,例如是mo(model object)数据,mo数据无法在网络上进行传输,因此需要将其进行转化,本发明中将其转化为导出数据传输对象,例如是dto(data transfer object)数据。此处的数据转化过程为现有技术,本发明不作赘述。查询结果内容转化为导出数据传输对象后,将导出数据传输对象添加到excel内存中生成excel数据行。第一页的查询结果内容全部生成excel数据行之后,继续加载第二页查询结果,继续将当前加载页(第二页)的查询结果内容转化为导出数据传输对象,查询结果内容转化为导出数据传输对象后,将导出数据传输对象添加到excel内存中生成excel数据行。执行完第二页查询结果后,继续按照上述步骤执行第三页,依次执行直至结束。
35.在本发明的一个具体实施例中,本发明的excel导出方法还包括,根据第一页查询结果内容构建excel表头,将所述excel数据行追加到所述excel表头下,生成完整excel字节流。此过程构建excel表头,进而生成完整excel字节流,以便于进一步导出excel文件。
36.具体地,参照上述实例,第一页查询结果内容中都是与“北京市”相关的所有信息,因此包括与“北京市”相关的出口口岸代码、运输方式、提单号、商品批次号、总包号、物流运单编号、订单编号、重量、数量等数据属性信息。在将第一页的查询结果内容全部生成excel数据行之前,利用这些数据属性信息以及共同属性(北京市)构建excel表头,将第一页的查询结果内容生成的excel数据行对应追加到excel表头下,后面的每一页查询结果内容生成的excel数据行均对应追加到excel表头下,进而生成了完整的excel字节流。
37.在本发明的一个具体实施例中,上述将当前加载页查询结果内容转化为导出数据传输对象的过程包括,根据预先配置好的数据传输对象的属性对当前加载页查询结果内容进行筛选,并将筛选出得到的当前加载页筛选结果转化为导出数据传输对象。此过程以便于仅导出用户所需的部分数据,无需全部导出,降低导出之后用户的工作量,并且一目了然。
38.具体地,上述根据预先配置好的数据传输对象的属性对当前加载页查询结果内容进行筛选,并将筛选出得到的当前加载页筛选结果转化为导出数据传输对象的过程包括,用户可以在查询界面预先配置数据传输对象的属性,例如数据库中与“北京市”相关的数据属性信息包括出口口岸代码、运输方式、提单号、商品批次号、总包号、物流运单编号、订单编号、重量、数量等,但用户只需要导出其中三种数据属性信息(提单号、商品批次号、总包号),因此用户可以预先将提单号、商品批次号、总包号设置为所需的数据传输对象,在加载每一页查询结果时,对每一页查询结果中的内容进行筛选,仅筛选得到提单号、商品批次号以及总包号,将每一页已经筛选过的查询结果内容(当前加载页筛选结果)进行转化,得到导出数据传输对象,此处的数据转化过程为现有技术,本发明不作赘述。
39.在本发明的一个具体实施例中,上述根据第一页查询结果内容构建excel表头的过程包括,根据预先配置好的数据传输对象的属性,利用第一页查询结果内容的数据属性构建excel表头。此过程在预先配置好数据传输对象属性的前提下构建excel表头,进而生成完整excel字节流,以便于进一步导出excel文件。
40.具体地,由于用户已经预先配置好数据传输对象的属性,例如是上述实例中的提单号、商品批次号以及总包号,因此利用提单号、商品批次号、总包号以及共同属性(北京市)构建excel表头,将第一页的查询结果内容生成的excel数据行对应追加到excel表头下,后面的每一页查询结果内容生成的excel数据行均对应追加到excel表头下,进而生成了完整的excel字节流。
41.在本发明的一个具体实施例中,在完成构建excel表头之后,对excel表头对应的数据列的相关参数进行自定义注解;数据列的相关参数包括数据列的顺序、宽度以及格式。此过程以便于减少导出后的工作量,在导出前就将数据列的相关参数进行自定义注解,使导出的excel文件符合用户需求。
42.此处采用java注解annotation机制,其将程序的元素如:类、方法、属性、参数、本地变量、包和元数据等联系起来。这样编译器可以将元数据存储在class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。
43.具体地,参照上述实例,例如构建的excel表头包括提单号、商品批次号、总包号以及共同属性(北京市),每一页查询结果内容生成的excel数据行均对应追加到excel表头下,已经生成了完整的excel字节流。我们可以将excel表头对应的数据列的相关参数进行自定义注解,例如将提单号与商品批次号的数据列顺序进行互换。假设总包号的相关数据较长,我们可以将总包号的数据列宽度进行设置,使其能够完整显示总包号的相关数据。假设导出后要求用户不能对共同属性(北京市)进行编辑修改,因此我们可以对共同属性(北京市)的数据列格式进行设置,使其输出后不能进行编辑修改。实际应用中,数据列的相关参数也可以包括列内数据的排序等,本发明不作限制。
44.在本发明的一个具体实施例中,本发明的excel导出方法还包括,对完整excel字节流设置返回所需信息后,返回至请求客户端,并弹窗提示用户下载保存。此过程以便于提醒用户本次excel导出文件已经可以正常导出查看、编辑等。
45.具体地,实际应用中,对完整excel字节流设置返回所需信息,此处的返回所需信息可以包括文件名,文件格式,字符编码等信息。设置完返回所需信息返回至请求客户端,通过弹窗提示的方式提示用户下载保存。
46.通过本发明excel导出方法的应用,对excel导出过程中的数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
47.图2所示为本发明一种excel导出装置一个具体实施方式的示意图。
48.在该具体实施方式中,excel导出装置主要包括:
49.模块201:用于根据请求客户端的查询请求构建查询对象的模块,此模块以便于进一步根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载;
50.模块202:用于根据查询对象获取查询结果的数量,并根据查询结果的数量对查询结果进行分页,之后对所有查询结果进行分页循环加载的模块,此模块将数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗;以及
51.模块203:用于将当前加载页查询结果内容转化为导出数据传输对象,之后利用导出数据传输对象生成excel数据行的模块,此模块生成excel数据行,以便于进一步导出excel文件。
52.在本发明的一个具体实施例中,上述excel导出装置还包括,用于根据第一页查询结果内容构建excel表头,将excel数据行追加到excel表头下,生成完整excel字节流的模块,此模块构建excel表头,进而生成完整excel字节流,以便于进一步导出excel文件。
53.在本发明的一个具体实施例中,上述excel导出装置还包括,用于对完整excel字节流设置返回所需信息后,返回至请求客户端,并弹窗提示用户下载保存的模块,此模块以便于提醒用户本次的excel导出文件已经可以正常导出查看、编辑等。
54.通过本发明excel导出装置的应用,对excel导出过程中的数据加载步骤进行优化,避免因加载大数据量时造成的系统资源消耗和数据库资源消耗。
55.在本发明的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,其特征在于,计算机指令被操作以执行任一实施例描述的excel导出方法。其中,该存储介质可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
56.软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd-rom或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
57.处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field programmable gate array,简称:fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
58.在本发明的一个具体实施方式中,提供一种计算机设备,其包括至少一个处理器;以及与至少一个处理器进行通信连接的存储器,其中,存储器存储有可被至少一个处理器
执行的计算机指令,至少一个处理器操作计算机指令以执行方案中的excel导出方法。
59.在本技术所提供的实施方式中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
60.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
61.以上仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献