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

一种大数据Excel参数化配置导出方法与流程

2022-03-23 01:27:12 来源:中国专利 TAG:

一种大数据excel参数化配置导出方法
技术领域
1.本发明涉及数据处理技术领域,提供了一种大数据excel参数化配置导出方法。


背景技术:

2.本技术应用于大量数据导出生成excel场景。该技术支持参数化配置excel导出相关属性操作,极大的减少了系统大数据excel导出开发工作量、导出时间。通过api的封装,降低了开发难度、报表的生成时间,提升了数据处理、填充的效率,不会因为数据量过大导致报表生成时间超长、cpu过载影响系统正常的业务处理。
3.技术背景
4.目前银行系统的数据量都比较大,在生成大数据excel报表的时候,都是采用硬编码或者生成多个excel文件的机制,对开发人员的工作量比较繁琐,使用者也不方便查看,影响系统的运行和用户体验。当有新的大数据excel导出功能需要开发时,又需要重新编码、测试,编码后上生产的时候,还需要根据业务场景考业务场景对系统性能的影响。
5.业务背景
6.对账系统支持用户查看交易流水,并且导出excel报表。由于查询时间限制有限,部分商户的交易流水比较大,有导出excel的到本地的需求。常用的excel导出支持模板式数据填充或使用poi自己开发组装excel,结果就是填充的时候excel生成的时间过长,需要异步的形式生成,或者大量占用系统资源,导致系统其他业务操作卡顿。
7.因此,针对大数据excel报表导出,在不影响系统性能,又能及时响应到前端,同时降低开发人员的人力成本、难易度等封装了本技术。只需要在开发同类功能的时候,增加对应的配置,初步封装后台查询数据,调用api,就能及时生成大数据excel。


技术实现要素:

8.本发明的目的在于解决excel导出支持模板式数据填充或使用poi自己开发组装excel,结果就是填充的时候excel生成的时间过长,需要异步的形式生成,或者大量占用系统资源,导致系统其他业务操作卡顿的问题。
9.为了解决上述技术问题本发明采用以下技术方案:
10.本发明提供了一种大数据excel参数化配置导出方法,其特征在于,包括以下步骤:
11.步骤1:将要生成的excel模板样式,转换成xml配置文件;
12.步骤2:通过digester方法读取步骤1定义的xml配置文件,获取excel配置信息,得到excel属性、sheet属性,line属性;
13.步骤3:根据步骤2.2获取的sheet属性,从数据库数据查询到的待填充的业务数据,组装excel文件中的sheet页;
14.步骤4:根据步骤2获取的excel配置信息及步骤3获取的业务数据,执行数据填充操作;生成excel文件,并压缩。
15.上述技术方案中,步骤1包括如下步骤:
16.步骤1.1:将excel模板样式中的文件属性,转换为excel标签属性;
17.步骤1.2:将excel模板样式中的sheet属性,转换为sheet标签属性;
18.步骤1.3:将excel模板样式中的单元格属性,转换为line标签属性。
19.上述技术方案中,步骤2包括如下步骤:
20.上述技术方案中,excel配置信息包括excel属性、sheet属性、line属性;
21.excel属性包括导出文件名称、路径、是否压缩;
22.sheet属性包括sheet页名称、冻结行、分页最大记录数;
23.line属性,即单元格属性,包含:待填充数据的位置信息、取数规则、字体、样式,
24.步骤2.2:取出步骤2.1中excel配置信息的sheet属性的集合list(),遍历集合list()逐一获取sheet属性,如果不为空,取出当前sheet属性;如果为空,结束循环,读取sheet属性完毕。
25.上述技术方案中,步骤3具体包括:
26.步骤3.1:获取步骤2.1中得到的sheet配置属性中的sheet页名称、冻结行信息;
27.步骤3.2:获取各sheet属性中的行line属性的集合list、分页最大记录数。
28.上述技术方案中,步骤4具体包括:
29.步骤4.1:根据步骤3.1获取的sheet配置中的sheet页名称、冻结行信息,创建sheet页、设置sheet的名称、冻结行;
30.步骤4.2:遍历行line属性的集合list,获取单元格配置属性,根据line的配置,填充数据并设置单元格样式;
31.步骤4.3:根据excel属性中的文件路径、文件名称生成excel文件;
32.步骤4.4:判断excel属性中的压缩属性,压缩属性为true,压缩文件,否则,文件数据,逻辑结束。
33.上述技术方案中,步骤3.1具体包括以下步骤:
34.步骤3.1.1获取行line属性:字体(font-size)、加粗标志(font-bold)、行数(datatype),单元格属性:文本(text)、组装动态文本(dynamic-text)、合并单元格数(colspan)、水平属性(xalignment)、垂直属性(yalignment)、自动换行属性(wraptext)、宽度(width)、高度(height)、字体大小(font-size)、加粗标志(font-bold)。
35.上述技术方案中,步骤4.2具体包括以下步骤:
36.步骤4.2.1判断line的行数属性(datatype),确认是1行还是多行;
37.如果行数(datatype)为1,表示组装一行数据,根据业务需求获取业务数据(如:账号、户名、交易时间等),存放到待填充的变量中;根据line中的单元格属性,组装excel的行单元格,并且填充数据;
38.如果行数(datatype)为n,表示组装多行数据,具体包括如下步骤;
39.步骤4.2.1.1:根据业务需求获取待填充业务数据记录总数;
40.步骤4.2.1.2:根据步骤3.2中sheet属性的分页最大记录数及步骤4.2.1.15获取的业务数据记录总数,计算分页数n,分页数=业务数据记录总数/分页最大记录;
41.步骤4.2.1.3:创建n次的for循环,准备每个sheet分页的分页组装数据;
42.步骤4.2.1.4:根据业务需求及分页最大记录数,查询数据库数据中每个分页对应
的数据;
43.步骤4.2.1.5:for循环遍历数据库数据,获取到每个分页的填充业务数据;
44.步骤4.2.1.6:根据line的配置,填充数据并设置单元格样式。
45.因为本发明采用上述技术方案因此具备以下有益效果:
46.1、配置化定义excel导出属性,使功能更灵活,修改配置文件部分属性,不影响应用正常使用;
47.2、采用分页查询组装sheet数据,降低了数据库、服务器的压力,提升了用户操作响应速度;
48.3、xml配置导出excel属性,使大数据excel导出更灵活、方便;
49.4、封装分页查询数据库数据,根据xml配置组装excel数据,极大的降低了数据库、服务器的压力,极大的便利了业务的扩展、场景的复用;
50.5、极大的减少了前端点击生成大数据excel报表的响应时间。
51.6、修改导出excel单元格某些属性(如:宽度、字体大小、取值范围、高度、合并数等配置)不需要关闭服务,不会影响业务正常进行;
52.7、采用分页查询组装多行记录数,降低了系统内存的消耗以及数据库的压力,同时处理速度更快,提升了用户体验度。
附图说明
53.图1为本发明xml配置文件示意图。
具体实施方式
54.以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
55.另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。
56.本发明提供了一种大数据excel参数化配置导出方法,包括以下步骤:
57.步骤1:将要生成的excel模板样式,转换成xml配置文件;
58.xml示例:
59.[0060][0061]
[0062]
步骤2:通过digester方法读取步骤1定义的xml配置文件,获取excel配置信息,得到excel属性、sheet属性,line属性,其中excel属性如上述xml示例中第2-37行,sheet属性如xml示例中10-34行,line属性如xml示例中12-32行;
[0063]
步骤3:根据步骤2.2获取的sheet属性,从数据库数据查询到的待填充的业务数据,组装excel文件中的sheet页;
[0064]
步骤4:根据步骤2获取的excel配置信息及步骤3获取的业务数据,执行数据填充操作;生成excel文件,并压缩。
[0065]
上述技术方案中,步骤1包括如下步骤:
[0066]
步骤1.1:将excel模板样式中的文件属性,转换为excel标签属性,如xml示例中的2-37行;
[0067]
步骤1.2:将excel模板样式中的sheet属性,转换为sheet标签属性,如xml示例中10-34行;
[0068]
步骤1.3:将excel模板样式中的单元格属性,转换为line标签属性,如xml示例中12-32行。
[0069]
上述技术方案中,步骤2包括如下步骤:
[0070]
上述技术方案中,excel配置信息包括excel属性、sheet属性、line属性;
[0071]
excel属性包括导出文件名称、路径、是否压缩;
[0072]
sheet属性包括sheet页名称、冻结行、分页最大记录数;
[0073]
line属性,即单元格属性,包含:待填充数据的位置信息、取数规则、字体、样式;
[0074]
步骤2.2:取出步骤2.1中excel配置信息的sheet属性的集合list(),遍历集合list()逐一获取sheet属性,如果不为空,取出当前sheet属性;如果为空,结束循环,读取sheet属性完毕。
[0075]
上述技术方案中,步骤3具体包括:
[0076]
步骤3.1:获取步骤2.1中得到的sheet配置属性中的sheet页名称、冻结行信息;
[0077]
步骤3.2:获取各sheet属性中的行line属性的集合list、分页最大记录数。
[0078]
上述技术方案中,步骤4具体包括:
[0079]
步骤4.1:根据步骤3.1获取的sheet配置中的sheet页名称、冻结行信息,创建sheet页、设置sheet的名称、冻结行;
[0080]
步骤4.2:遍历行line属性的集合list,获取单元格配置属性,根据line的配置,填充数据并设置单元格样式;
[0081]
步骤4.3:根据excel属性中的文件路径、文件名称生成excel文件;
[0082]
步骤4.4:判断excel属性中的压缩属性,压缩属性为true,压缩文件,否则,文件数据,逻辑结束。
[0083]
上述技术方案中,步骤3.1具体包括以下步骤:
[0084]
步骤3.1.1获取行line属性:字体(font-size)、加粗标志(font-bold)、行数(datatype),单元格属性:文本(text)、组装动态文本(dynamic-text)、合并单元格数(colspan)、水平属性(xalignment)、垂直属性(yalignment)、自动换行属性(wraptext)、宽度(width)、高度(height)、字体大小(font-size)、加粗标志(font-bold)。
[0085]
上述技术方案中,步骤4.2具体包括以下步骤:
[0086]
步骤4.2.1判断line的行数属性(datatype),确认是1行还是多行;
[0087]
如果行数(datatype)为1,表示组装一行数据,根据业务需求获取业务数据(如:账号、户名、交易时间等),存放到待填充的变量中;根据line中的单元格属性,组装excel的行单元格,并且填充数据;
[0088]
如果行数(datatype)为n,表示组装多行数据,具体包括如下步骤;
[0089]
步骤4.2.1.1:根据业务需求获取待填充业务数据记录总数;
[0090]
步骤4.2.1.2:根据步骤3.2中sheet属性的分页最大记录数及步骤4.2.1.15获取的业务数据记录总数,计算分页数n,分页数=业务数据记录总数/分页最大记录;
[0091]
步骤4.2.1.3:创建n次的for循环,准备每个sheet分页的分页组装数据;
[0092]
步骤4.2.1.4:根据业务需求及分页最大记录数,查询数据库数据中每个分页对应的数据;
[0093]
步骤4.2.1.5:for循环遍历数据库数据,获取到每个分页的填充业务数据;
[0094]
步骤4.2.1.6:根据line的配置,填充数据并设置单元格样式。
再多了解一些

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

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

相关文献