CN114780626A - 一种高性能的基于异步任务的excel导出方法 - Google Patents
一种高性能的基于异步任务的excel导出方法 Download PDFInfo
- Publication number
- CN114780626A CN114780626A CN202210467871.9A CN202210467871A CN114780626A CN 114780626 A CN114780626 A CN 114780626A CN 202210467871 A CN202210467871 A CN 202210467871A CN 114780626 A CN114780626 A CN 114780626A
- Authority
- CN
- China
- Prior art keywords
- export
- data
- file
- header
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 36
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 241000283973 Oryctolagus cuniculus Species 0.000 claims description 2
- 238000009795 derivation Methods 0.000 claims 1
- 238000013467 fragmentation Methods 0.000 claims 1
- 238000006062 fragmentation reaction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 240000007218 Ipomoea hederacea Species 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种高性能的基于异步任务的excel导出方法,包括步骤:(1)根据需处理的事件,生成导出任务,通过提供界面进行导出任务文件参数配置;(2)操作导出任务实现数据处理;所述数据处理过程包括业务数据的获取并结合redies缓存数据库实现业务数据缓存,导出策略数据的获取,结合RabbitMQ队列实现异步数据处理,使用EasyExcel并结合所述导出策略实现自定义导出通用模式;(3)结合第三方云存储服务实现文件上传与备份,导出文件。本发明处理数据统一化,可配置导出数量,执行过程中,实现分段导出模式,最大程度的提升用户体验度,满足业务对系统的解耦,同时减少系统吞吐量。
Description
技术领域
本发明属于网络数据处理技术领域,尤其涉及一种高性能的基于异步任务的excel导出方法。
背景技术
由于互联网的迅速发展衍生的互联网行业的相关业务越来越复杂,业务数据量也越来越大,并且随之而产生的业务数据展示、统计等的需求也越来越普遍。Excel作为现在用户最喜欢使用的文件形式之一,用户不由得对所使用的业务系统导出的以excel文件格式承载的业务数据的性能、用户体验以及展示多样性方面提出了更高的要求。
目前对现有数据技术有更新的需求,不仅要求系统装配简单,而且文件通用统一化,可配置导出数量,配置文件压缩数量,配置自定义导出表头,自定义文件展示内容,同时要求高效快速、高准确率能够实时中断导出,实现分段导出模式,最大程度的提升用户体验度,但这些需求目前技术都很难达到。
现有的excel导出方案中,企业一般会使用“POI作为主要技术+MQ队列异步队列+Redies缓存”等的导出模式,来解决大数据量、提高系统性能等问题,以实现需求为主。由于使用技术的局限性,一般对用户所需要的的一些自定义需求,比如自定义表头的多维展示、自定义文件的分段导出,自定义导出任务的实时控制等等体验性的需求很难实现。但是实际上面对越来越复杂的业务,用户需求也会越来越多样化,忽视用户体验度或者以牺牲系统性能为代价满足用户体验,可能会带来降低系统的生命周期,提高系统维护成本,降低企业效益等问题。
发明内容
鉴于以上现有技术的不足,本发明的目的在于提供一种高性能的基于异步任务的excel导出方法,处理数据统一化,可配置导出数量,执行过程中实现分段导出模式,最大程度的提升用户体验度,满足业务对系统的解耦,高效处理好数据。
本发明的方法,是通过将excel导出内容当做导出任务来处理,在导出之前以“用户-任务-导出参数策略”为维度设置导出策略;excel导出过程中使用EasyExcel技术,使用RabbitMQ队列形成异步的任务处理,同时结合Redis缓存数据技术做数据缓存,缓解服务器压力等,运用第三方云存储服务,减少系统吞吐量,执行“时间线-文件导出”的工作模式;excel导出文件之后,按照导出策略涉及的通用设置模式,进行文件的多样性展示。整个导出数据执行过程中,满足业务对系统的解耦,既服务于系统,又服务于用户,同时保证着系统的稳定性,减少系统吞吐量。
本发明提供一种高性能的基于异步任务的excel导出方法,括步骤:
(1)根据需处理的事件,生成导出任务,通过提供界面进行导出任务文件参数配置;
(2)操作导出任务实现数据处理;所述数据处理过程包括业务数据的获取并结合redies缓存数据库实现业务数据缓存,导出策略数据的获取,结合RabbitMQ队列实现异步数据处理,使用EasyExcel并结合所述导出策略实现自定义导出通用模式;
(3)结合第三方云存储服务实现文件上传与备份,导出文件。
进一步,所述步骤(1)具体包括:所述通过提供界面进行导出任务文件参数配置,包括设置文件上传上限,文件展示模式,文件压缩方式,文件分段导出时间片。
进一步,所述步骤(2)中,业务数据的获取并结合redies缓存数据库实现业务数据缓存,具体包括自定义代码封装工具,该代码封装工具实现通过业务数据本身的查询参数设置,针对不同业务获取不同业务数据功能;之后使用Redies缓存数据库,作为第三方存储数据库,在使用redies功能时还通过命令对业务数据实现加锁和解锁。
进一步,所述步骤(2)中,结合RabbitMQ队列实现异步数据处理,该处理过程中,首先定义作为RabbitMQ消费的messageObj实体对象;之后根据是否进行分段导出策略参数,将消费消息分别发送到不同的队列当中,实现不同业务不同队列处理模式。
进一步,所述步骤(2)中,使用EasyExcel并结合所述导出策略实现自定义导出通用模式,包括实现自定义分段导出过程,以及自定义导出通用模式设置;
其中所述实现自定义分段导出过程,根据不同的时间片设置,将未来导出的时间以24小时为单位,生成导出时间节点列表,并且将该导出时间节点列表放入Redies缓存数据库,在实现数据写入文件的过程中,实现文件分片上传;
所述自定义导出通用模式设置,是根据导出设置参数策略,设置不同的通用模板,包括如下至少一种:固定表头的通用模板形式,自定义表头的一维数据显示模板形式,自定义表头二维数据显示模板形式,自定义表头三维数据显示模板形式,追加汇总文件模式。
进一步,针对设置不同的通用模板描述,具体如下:
所述固定表头的通用模板形式,主要是根据业务数据的导出要求,事先定义好导出表头对象,其中的属性字段以下标为显示标识,顺序从0开始,对应导出的具体显示要求,结合通用查询的数据结果实体,使用查询实体、表头转换函数完成对应的表头数据赋值操作;
所述自定义表头的一维数据显示模板形式,进行前端的展示数据设置,用户在操作界面选择导出的数据字段数组,该数组的大小一定是小于等于界面列表展示的全部数据属性的,通过比对数组字段以及固定表头对象属性字段,设置字段导出忽略标志,将实际需要导出的字段进行导出;
所述自定义表头二维数据显示模板形式,是对数据的横纵向展示,横向表头处理和自定义表头的一维数据处理相同,纵向表头处理依据实际上的数据查询,该查询一般涉及到数据的分组,所以需要在上述导出数据源获取的基础上添加分组参数,并且对应的查询sql需要做兼容查询设置;
所述自定义表头三维数据显示模板形式,该形式的整体数据处理逻辑是在所述自定义表头二维数据显示模板形式上,增加三维图像展示显示,使用jfreechart引擎实现图片的柱状图、折线图的图像显示处理。需要三维显示的excel导出逻辑在配合图像展示的设置中,以三维图像显示为主。
进一步,所述步骤(3)包括,结合第三方云存储服务实现文件上传与备份,所述基于异步任务的excel导出过程,是在Rabbit MQ队列的基础上同时结合Redis缓存和云服务实现数据备份以及文件的追加模式;每执行完一个时间片段,将对应的文件做保存处理并上传到云服务器中进行保存,完成一次逻辑迭代。
与现有技术的缺点进行比较,本发明方案的改进带来如下优点:
本发明方案通过自定义导出策略的设置,提升用户体验度,整合各个场景的导出模式,形成通用工具模式,保证了简单可用性,提高了开发效率。本发明方案既服务了用户,又降低了研发数据难度,还保证了处理过程的一致性。真正做到可扩展、低成本、可维护、低耦合性。
(1)、现有技术在系统中引用复杂,使用门槛很高。因为POI在读写Excel时会将所有数据读写在内存里面,生成一个dom树的结构,里面不仅有基础数据还有样式等等的对象,占用内存大,数据量大了就会OOM(内存溢出),提高系统能耗;此外不管导出导入都是细分到对每一个单元格进行操作,使用步骤繁琐。API不够简单易懂,需要熟读文档,导致开发和维护成本高,这更是提高了使用门槛。
本发明方案改进处优点是:使用EasyExcel作为主要导出技术。使用“EasyExcel作为主要技术+MQ队列异步队列+Redies缓存+第三方云储存”等的导出模式。因为EasyExcel使用流逐行读取,用观察者模式逐行处理数据,减少内存消耗,而且不关注样式等其他内容,只关注数据。读写速度快,降低系统能耗,并且EasyExcel是对POI进行高级封装和重写,保持POI丰富的功能同时简化了操作,很容易就能上手,降低使用门槛。此外封装文件导出工具,实现系统低耦合模式。
(2)、现有技术导出的模板一般不支持自定义展示。因为POI实现的复杂程度,在实现某一个多样化的展示需求,比如说在实现多维表头、数据图形化展示、函数、自定义行列统计、行列合并等等展示需求的时候,往往需要经过很多很复杂的代码逻辑才能实现,并且不容易扩展,所以一般的导出实现中,为了不增加系统以及服务器的负担,降低开发难度,基本上很少支持或者不支持excel导出模板的自定义展示需求。但是用户需求易变,长此以往,不仅是增加了系统的复杂度与不可扩展度,也一定程度上降低了用户体验度。
本发明方案改进处优点是:Excel导出可配置化,提供自定义的导出表头、文件展示形式,文件压缩策略以及设置文件导出中断策略。并且基于EasyExcel技术,实现易扩展,不牺牲系统性能,提高用户体验度。
(3)、现有技术基本不支持对导出任务的实时中断,数据文件的分段导出。因为目前市面上存在的导出模式基本都是基于“点击-处理业务-导出文件”模式,要么成功,要么失败。即没有一个统一的导出任务管理模块,这样一来,面对事件进行不可中断性质,自然做不到导出流程的实时控制,从而不会实现所谓的文件实时导出,分段处理的需求。但是,很多时候,文件导出的数据量常以百万、千万为单位,在漫长的导出等待时间中,一旦系统遭遇不可控原因出现问题,那么任务强制终止,导出的文件最终不了了之。
本发明方案改进处优点是:基于配置策略,实现文件导出实时控制,分段导出。导出业务基于“点击-下载任务-处理任务-第三方云存储-导出文件”业务处理模式,控制导出流程,以时间片为单位,以最小的代价,实时文件的分片导出。多渠道数据备份,实现高效率的同时,保证系统质量。
附图说明
图1是本发明提供的高性能的基于异步任务的excel导出方法流程示意图;
图2是本发明的子步骤生成导出任务流程示意图。
图3是本发明的子步骤结合RabbitMQ队列实现异步数据处理流程示意图。
图4是本发明的子步骤实现自定义分段导出过程流程示意图。
图5是本发明的子步骤设置不同的通用模板处理流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明方法通过对将excel导出当做导出任务来处理,实现文件导出实时控制,分段导出。控制导出流程,以时间片为单位,以最小的代价,实时文件的分片导出。整个执行过程中,满足业务对系统的解耦,既服务于系统,又服务于用户,同时保证着系统的稳定性,可用性以及保障了质量性。
如图1所示,本发明独特开发一种高性能的基于异步任务的excel导出方法,括步骤:
(1)根据需处理的事件,生成导出任务,通过提供界面进行导出任务文件参数配置;
(2)操作导出任务实现数据处理;所述数据处理过程包括业务数据的获取并结合redies缓存数据库实现业务数据缓存,导出策略数据的获取,结合RabbitMQ队列实现异步数据处理,使用EasyExcel并结合所述导出策略实现自定义导出通用模式;
(3)结合第三方云存储服务实现文件上传与备份,导出文件。具体包括结合第三方云存储服务实现文件上传与备份,所述基于异步任务的excel导出过程,是在结合RabbitMQ队列的基础上同时结合Redis缓存和云服务实现数据备份以及文件的追加模式;每执行完一个时间片段,将对应的文件做保存处理并上传到云服务器中进行保存,完成一次逻辑迭代。
具体的,如图2所示,本发明方法所述步骤(1)具体包括:根据需处理的事件,在界面上点击导出按钮,输入导出任务名称,选择导出策略参数,生成导出任务数据,通过提供界面导出参数配置的模式,包括设置文件上传上限,文件展示模式,文件压缩方式,文件分段导出时间片。
导出任务是导出控制的基础单元,通过对导出任务的删除、下载、中断等控制,来实现对导出流程的实时控制;此外,在点击界面导出按钮的过程中,通通过提供界面进行导出任务文件参数配置;设置文件上传上限;文件展示模式,比如饼状图、柱状图、扇形图等,通过数据对比,及时满足数据比对需求;文件压缩策略,比如文件大小超过某一限制,则切割文件导出,形成压缩包;是否设置文件分段导出,选择分段导出时间片,30秒,40秒,45秒等时间分片模式,通过设置分片时间线,导出过程结果化。
所述步骤(2)中,子步骤201所述业务数据的获取并结合redies缓存数据库实现业务数据缓存。具体包括自定义代码封装工具,该代码封装工具实现通过业务数据本身的查询参数设置,针对不同业务获取不同业务数据功能;之后使用Redies缓存数据库,作为第三方存储数据库,在使用redies功能的前后通过set key value NX EX max-lock-time命令实现加锁,EVAL命令实现解锁,此外引入重试机制,根据自身业务衡量重试次数以及时间并做好设置工作,保证了数据的一致性,并同时减轻了本地系统以及服务器的压力。
所述步骤(2)中,子步骤202导出策略数据的获取。通过“用户-导出任务-导出策略”维度获取到该导出任务对应的导出策略数据。
所述步骤(2)中,子步骤203所述结合RabbitMQ队列实现异步数据处理,具体的流程如图3所示,该处理过程中,首先定义作为RabbitMQ消费的messageObj实体对象;之后判断是否进行分段导出策略,如果判断是,则消息发送到分段导出队列的生产者;如果判断否,则消息发送到非分段导出队列的生产者。即将消费消息发送到“分段导出生产队列”以及“非分段导出生产队列”两个不同的队列当中,实现不同业务不同队列处理模式。
所述步骤(2)中,子步骤204使用EasyExcel并结合所述导出策略实现自定义导出通用模式,包括实现自定义分段导出过程,以及自定义导出通用模式设置;
其中所述实现自定义分段导出过程,根据不同的时间片设置,将未来导出的时间以24小时为单位,生成导出时间节点列表,并且将该导出时间节点列表放入Redies缓存数据库,在实现数据写入文件的过程中,实现文件分片上传。
如图4所示,判断当前文件是否下载完成,如果没有,则获取导出任务下载时间。在开始执行下载任务的时候,系统会记录开始时间,执行分段导出逻辑的过程中,在获取到时间片段的时候,通过判断当前时间与开始下载时间的时间差,判断是否大于24小时,如果判断是则追加24小时,如果不是,则根据任务ID获取Redies中时间节点;再判断当前时间是否等于所述获取Redies中时间节点,如果判断是则获取原有文件,追加数据,分片上传文件到第三方千牛云云存储器,如果判断不是则继续写入文件,返回到判断当前时间和下载时间是否大于24小时步骤。
所述自定义导出通用模式设置,是根据导出设置参数策略,设置不同的通用模板,包括如下至少一种:固定表头的通用模板形式,自定义表头的一维数据显示模板形式,自定义表头二维数据显示模板形式,自定义表头三维数据显示模板形式,追加汇总文件模式,同时匹配展示样式等。在极大满足用户体验的同时,提升可操作性。
设置不同的通用模板处理流程如图5所示。2041步骤,根据用户以及下载任务ID获取下载导出策略。2042步骤,判断是否有固定表头的通用模板,如果判断有,则执行固定表头的通用模板设置方法,如果没有则执行2043步骤。所述2043步骤判断是否自定义表头模式,如果不是,执行2045步骤判断是否追加汇总文件模式;如果是,则依次分别判断是否为一维表头模式、是否为二维表头模式、是否为三维表头模式,如果都不是一维、二维、三维表头模式,则在2044步骤默认执行固定表头的通用模板设置方法,然后执行2045步骤判断是否追加汇总文件模式,如果判断是则设置文件追加模式,如果不是则执行总的数据分析处理方法并导出数据,结束通用模板处理流程。
所述固定表头的通用模板形式,主要是根据业务数据的导出要求,事先定义好导出表头对象,其中的属性字段以下标为显示标识,顺序从0开始,对应导出的具体显示要求,结合通用查询的数据结果实体,使用查询实体、表头转换函数完成对应的表头数据赋值操作。
所述自定义表头的一维数据显示模板形式,进行前端的展示数据设置,用户在操作界面选择导出的数据字段数组,该数组的大小一定是小于等于界面列表展示的全部数据属性的,通过比对数组字段以及固定表头对象属性字段,设置字段导出忽略标志,将实际需要导出的字段进行导出。
所述自定义表头二维数据显示模板形式,是对数据的横纵向展示,横向表头处理和自定义表头的一维数据处理相同,纵向表头依赖于实际上的数据查询,该查询一般涉及到数据的分组,所以需要在上述导出数据源获取的基础上添加分组参数,并且对应的查询sql需要做兼容查询设置。
所述自定义表头三维数据显示模板形式,该形式的整体数据处理逻辑是在所述自定义表头二维数据显示模板形式上,增加三维图像展示显示,使用jfreechart引擎实现图片的柱状图、折线图的图像显示处理。三维显示的excel导出逻辑在配合图像展示的设置中,以三维图像显示为主。
本发明方法突出的优点是通过自定义导出策略的设置,提升用户体验度。整合各个场景的导出模式,形成通用工具模式,保证了简单可用,提高了开发效率。既服务了用户,又服务了研发,还保证了处理过程的一致性,真正做到可扩展、低成本、可维护、低耦合。
采用异步导出,破除性能屏障,保障导出执行过程结果有效化。保障数据来源稳定,保证数据保存有效,减少数据丢失风险,提高系统的容错率。同时可控制的下载服务,及时把控,有效处理。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种高性能的基于异步任务的excel导出方法,其特征在于,包括步骤:
(1)根据需处理的事件,生成导出任务,通过提供界面进行导出任务文件参数配置;
(2)操作导出任务实现数据处理;所述数据处理过程包括业务数据的获取并结合redies缓存数据库实现业务数据缓存,导出策略数据的获取,结合RabbitMQ队列实现异步数据处理,使用EasyExcel并结合所述导出策略实现自定义导出通用模式;
(3)结合第三方云存储服务实现文件上传与备份,导出文件。
2.根据权利要求1所述一种高性能的基于异步任务的excel导出方法,其特征在于,所述步骤(1)具体包括:
所述通过提供界面进行导出任务文件参数配置,包括设置文件上传上限,文件展示模式,文件压缩方式,文件分段导出时间片。
3.根据权利要求1所述一种高性能的基于异步任务的excel导出方法,其特征在于,所述步骤(2)中,所述业务数据的获取并结合redies缓存数据库实现业务数据缓存,具体包括自定义代码封装工具,该代码封装工具实现通过业务数据本身的查询参数设置,针对不同业务获取不同业务数据功能;之后使用Redies缓存数据库,作为第三方存储数据库,在使用Redies功能时还通过命令对业务数据实现加锁和解锁。
4.根据权利要求1所述一种高性能的基于异步任务的excel导出方法,其特征在于,所述步骤(2)中,所述结合RabbitMQ队列实现异步数据处理,该处理过程中,首先定义作为RabbitMQ消费的messageObj实体对象;之后,根据是否进行分段导出策略参数,将消费消息分别发送到不同的队列当中,实现不同业务不同队列处理模式。
5.根据权利要求1所述一种高性能的基于异步任务的excel导出方法,其特征在于,所述步骤(2)中,使用EasyExcel并结合所述导出策略实现自定义导出通用模式,包括实现自定义分段导出过程,以及自定义导出通用模式设置;
其中所述实现自定义分段导出过程,根据不同的时间片设置,将未来导出的时间以24小时为单位,生成导出时间节点列表,并且将该导出时间节点列表放入Redies缓存数据库,在实现数据写入文件的过程中,实现文件分片上传;
所述自定义导出通用模式设置,是根据导出设置参数策略,设置不同的通用模板,包括如下至少一种:固定表头的通用模板形式,自定义表头的一维数据显示模板形式,自定义表头二维数据显示模板形式,自定义表头三维数据显示模板形式,追加汇总文件模式。
6.根据权利要求5所述一种高性能的基于异步任务的excel导出方法,其特征在于,针对设置不同的通用模板描述,具体如下:
所述固定表头的通用模板形式,主要是根据业务数据的导出要求,事先定义好导出表头对象,其中的属性字段以下标为显示标识,顺序从0开始,对应导出的具体显示要求,结合通用查询的数据结果实体,使用查询实体、表头转换函数完成对应的表头数据赋值操作;
所述自定义表头的一维数据显示模板形式,会依赖于前端的展示数据设置,用户在操作界面选择导出的数据字段数组,该数组的大小一定是小于等于界面列表展示的全部数据属性的,通过比对数组字段以及固定表头对象属性字段,设置字段导出忽略标志,将实际需要导出的字段进行导出;
所述自定义表头二维数据显示模板形式,是对数据的横纵向展示,横向表头处理和自定义表头的一维数据处理相同,纵向表头依赖于实际上的数据查询,该查询一般涉及到数据的分组,所以需要在上述导出数据源获取的基础上添加分组参数,并且对应的查询sql需要做兼容查询设置;
所述自定义表头三维数据显示模板形式,该形式的整体数据处理逻辑是在所述自定义表头二维数据显示模板形式上,增加三维图像展示显示,使用jfreechart引擎实现图片的柱状图、折线图的图像显示处理。
7.根据权利要求1所述一种高性能的基于异步任务的excel导出方法,其特征在于,所述步骤(3)包括
结合第三方云存储服务实现文件上传与备份,所述基于异步任务的excel导出过程,是在Rabbit MQ队列的基础上同时结合Redis缓存和云服务实现数据备份以及文件的追加模式;每执行完一个时间片段,将对应的文件做保存处理并上传到云服务器中进行保存,完成一次逻辑迭代。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467871.9A CN114780626A (zh) | 2022-04-29 | 2022-04-29 | 一种高性能的基于异步任务的excel导出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467871.9A CN114780626A (zh) | 2022-04-29 | 2022-04-29 | 一种高性能的基于异步任务的excel导出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780626A true CN114780626A (zh) | 2022-07-22 |
Family
ID=82434766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210467871.9A Pending CN114780626A (zh) | 2022-04-29 | 2022-04-29 | 一种高性能的基于异步任务的excel导出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780626A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118860989A (zh) * | 2024-09-24 | 2024-10-29 | 广东南方智媒科技有限公司 | 基于动态路由的分段式数据导出方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140019498A1 (en) * | 2010-02-22 | 2014-01-16 | Asaf CIDON | System, method and computer readable medium for file management |
CN104657123A (zh) * | 2013-11-21 | 2015-05-27 | 航天信息股份有限公司 | 一种动态导出文件的方法 |
CN110955674A (zh) * | 2019-10-21 | 2020-04-03 | 江苏苏宁物流有限公司 | 基于java服务的异步导出方法及组件 |
CN111405020A (zh) * | 2020-03-10 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 基于消息队列和fastDFS微服务架构的异步文件导出方法及系统 |
CN112287006A (zh) * | 2020-10-27 | 2021-01-29 | 上海淇馥信息技术有限公司 | 一种电子表格数据导出方法、装置及电子设备 |
-
2022
- 2022-04-29 CN CN202210467871.9A patent/CN114780626A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140019498A1 (en) * | 2010-02-22 | 2014-01-16 | Asaf CIDON | System, method and computer readable medium for file management |
CN104657123A (zh) * | 2013-11-21 | 2015-05-27 | 航天信息股份有限公司 | 一种动态导出文件的方法 |
CN110955674A (zh) * | 2019-10-21 | 2020-04-03 | 江苏苏宁物流有限公司 | 基于java服务的异步导出方法及组件 |
CN111405020A (zh) * | 2020-03-10 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 基于消息队列和fastDFS微服务架构的异步文件导出方法及系统 |
CN112287006A (zh) * | 2020-10-27 | 2021-01-29 | 上海淇馥信息技术有限公司 | 一种电子表格数据导出方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
周鼎;付彬;马骁;荣强;: "基于海量数据处理的电力工程综合管理平台设计及应用", 电工技术, no. 12, 10 December 2017 (2017-12-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118860989A (zh) * | 2024-09-24 | 2024-10-29 | 广东南方智媒科技有限公司 | 基于动态路由的分段式数据导出方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105549982A (zh) | 一种基于模型配置的自动化开发平台 | |
CN103617047A (zh) | 一种业务流程开发方法、装置及处理器 | |
CN113094042A (zh) | 一种基于浏览器的电力自动化系统自定义组件的实现与解析方法 | |
CN102521014B (zh) | 虚拟机的部署方法及装置 | |
WO2019153549A1 (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
CN106790455A (zh) | 一种基于混合模式的分布式云管理系统及方法 | |
CN102014158A (zh) | 一种云存储服务客户端高效细粒度数据缓存系统与方法 | |
CN107645410A (zh) | 一种基于OpenStack云平台的虚拟机管理系统及方法 | |
CN111695329A (zh) | 一种通用报表生成方法及装置 | |
CN105045855A (zh) | 多源分布式多媒体汇报材料自动生成方法及系统 | |
CN114780626A (zh) | 一种高性能的基于异步任务的excel导出方法 | |
CN117057079A (zh) | 一种配电网拓扑控制方法、系统、设备及存储介质 | |
CN112416893A (zh) | 数据共享方法、系统、装置、计算机设备和存储介质 | |
CN111625300B (zh) | 一种高效的数据采集加载方法及系统 | |
CN114996209A (zh) | 一种配置修改方法、装置、设备及可读存储介质 | |
CN106371931A (zh) | 一种基于Web框架的高性能地学计算服务系统 | |
CN113791714A (zh) | 一种软件系统图标库的方法 | |
CN103544221A (zh) | 一种Android系统中视频缩略图的生成方法和系统 | |
CN115658633A (zh) | 操作日志生成方法、装置、计算机设备及存储介质 | |
CN114579123A (zh) | 显示框架、页面展示方法、电子设备及存储介质 | |
CN116910113B (zh) | 档案数据的流式统计方法、装置、服务器及可读存储介质 | |
CN114461490B (zh) | 一种运维数据聚合系统 | |
CN103747081A (zh) | 一种云系统的操作方法、装置及系统 | |
CN115221000A (zh) | 一种多租户多集群中监控定制方法及装置 | |
CN108074086A (zh) | 计费系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |