一种基于Excel的报表展示方法及装置[发明专利]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011036106.9
(22)申请日 2020.09.27
(71)申请人 中国建设银行股份有限公司
地址 100033 北京市西城区金融大街25号
(72)发明人 王昊 李瑶 史国伟
(74)专利代理机构 北京三友知识产权代理有限
公司 11127
代理人 贾磊 刘飞
(51)Int.Cl.
G06F 40/18(2020.01)
G06F 40/106(2020.01)
G06F 40/114(2020.01)
(54)发明名称
一种基于Excel的报表展示方法及装置
(57)摘要
本发明提供一种基于Excel的报表展示方法
及装置,所述方法包括:获取报表的预设数据以
及所述报表对应的配置文件;其中,所述配置文
件是预设的;根据所述配置文件将所述预设数据
通过Excel分页展示。
所述装置用于执行上述方
法。
本发明实施例提供的基于Excel的报表展示
方法及装置,
提高了报表数据展示的灵活性。
权利要求书1页 说明书8页 附图2页CN 112100994 A 2020.12.18
C N 112100994
A
1.一种基于Excel的报表展示方法,其特征在于,包括:
获取报表的预设数据以及所述报表对应的配置文件;其中,所述配置文件是预设的;根据所述配置文件将所述预设数据通过Excel分页展示。
2.根据权利要求1所述的方法,其特征在于,所述配置文件包括分页配置,所述分页配置包括分页表头配置、分页数据配置和分页表尾配置。
3.根据权利要求2所述的方法,其特征在于,所述配置文件还包括页头配置和页尾配置。
4.根据权利要求3所述的方法,其特征在于,所述预设数据包括多个分组数据;相应地,所述根据所述配置文件将所述预设数据通过Excel分页展示包括:
根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;
根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页尾数据。
5.根据权利要求4所述的方法,其特征在于,所述根据各个分组数据的数据量以及所述配置文件设置的每页数据量,获得每个分组数据的分页数量包括:
计算每个分组数据的数据量与每页数据量的商值并向上取整,获得每个分组数据的分页数量。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述配置文件为XML文件格式。
7.一种基于Excel的报表展示装置,其特征在于,包括:
获取单元,用于获取报表的预设数据以及所述报表对应的配置文件;其中,所述配置文件是预设的;
展示单元,用于根据所述配置文件将所述预设数据通过Excel分页展示。
8.根据权利要求7所述的装置,其特征在于,所述展示单元包括:
获得子单元,用于根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;其中,所述预设数据包括多个分组数据;
生成子单元,用于根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页尾数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
权 利 要 求 书1/1页CN 112100994 A
一种基于Excel的报表展示方法及装置
技术领域
[0001]本发明涉及数据处理技术领域,具体涉及一种基于Excel的报表展示方法及装置。
背景技术
[0002]随着计算机技术的不断发展,用户交互的业务数据量日渐增多,用户对前端导出的报表数据的可视化及体验性要求也日益增高。
[0003]现有技术中,在报表的生成中可以通过硬编码处理后展示或者数据无加工直接展示。
硬编码的处理方式,表头和生产方式固定化,每一场景报表有各自的固定表头及样式,字段名称在代码中写好,同时配置相应的实体类,将从数据库中查询到数据赋值到实体类中,再通过创建EXCEL工作簿对象,循环EXCEL中的每行每列将数据列表填写进去形成报表。
硬编码的处理方式会使得代码变得越来越庞大,在对代码进行修改时需要查找相应代码文件,不够灵活快速,更不便于报表的维护。
数据无加工直接展示,在大量数据的报表展示需求中,所有的数据都直接罗列在报表中,用户需要浏览几千条甚至上万条数据,随着时间的增长,会造成用户的视觉疲劳,若用户未记录下某条数据,需要重新翻找数据,花费大量时间,从而影响了工作的效率,用户体验差。
发明内容
[0004]针对现有技术中的问题,本发明实施例提供一种基于Excel的报表展示方法及装置,能够至少部分地解决现有技术中存在的问题。
[0005]一方面,本发明提出一种基于Excel的报表展示方法,包括:
[0006]获取报表的预设数据以及所述报表对应的配置文件;其中,所述配置文件是预设的;
[0007]根据所述配置文件将所述预设数据通过Excel分页展示。
[0008]其中,所述配置文件包括分页配置,所述分页配置包括分页表头配置、分页数据配置和分页表尾配置。
[0009]其中,所述配置文件还包括页头配置和页尾配置。
[0010]其中,预设数据包括多个分组数据;相应地,所述根据所述配置文件将所述预设数据通过Excel分页展示包括:
[0011]根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;
[0012]根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页尾数据。
[0013]其中,所述根据各个分组数据的数据量以及所述配置文件设置的每页数据量,获得每个分组数据的分页数量包括:
[0014]计算每个分组数据的数据量与每页数据量的商值并向上取整,获得每个分组数据
的分页数量。
[0015]其中,所述配置文件为XML文件格式。
[0016]另一方面,本发明提供一种基于Excel的报表展示装置,包括:
[0017]获取单元,用于获取报表的预设数据以及所述报表对应的配置文件;其中,所述配置文件是预设的;
[0018]展示单元,用于根据所述配置文件将所述预设数据通过Excel分页展示。
[0019]其中,所述展示单元包括:
[0020]获得子单元,用于根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;其中,所述预设数据包括多个分组数据;
[0021]生成子单元,用于根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页尾数据。
[0022]再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述基于Excel的报表展示方法的步骤。
[0023]又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于Excel的报表展示方法的步骤。
[0024]本发明实施例提供的基于Excel的报表展示方法及装置,获取报表的预设数据以及所述报表对应的配置文件,然后根据配置文件将预设数据通过Excel分页展示,实现报表数据的分页展示,提高了报表数据的可读性。
此外,可以通过配置文件对报表数据的展示进行灵活配置,避免出现代码的冗余,提高了报表数据展示的灵活性。
附图说明
[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
[0026]图1是本发明一实施例提供的基于Excel的报表展示方法的流程示意图。
[0027]图2是本发明另一实施例提供的基于Excel的报表展示方法的流程示意图。
[0028]图3是本发明一实施例提供的基于Excel的报表展示装置的结构示意图。
[0029]图4是本发明另一实施例提供的基于Excel的报表展示装置的结构示意图。
[0030]图5是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
[0031]为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。
在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
示,本发明实施例提供的基于Excel的报表展示方法,包括:
[0033]S101、获取报表的预设数据以及所述报表对应的配置文件;
[0034]具体地,为了展示报表数据,服务器可以获取报表的预设数据,并获取报表对应的配置文件。
其中,所述配置文件是预设的,与所述报表对应,可以基于报表的种类设定不同的配置文件,并建立报表与配置文件的对应关系。
所述预设数据可以是按照设定格式预先从数据库中导出的用于生成报表的数据,具有与配置文件相匹配的格式。
其中,本发明实施例提供的基于Excel的报表展示方法的执行主体包括但不限于服务器。
[0035]S102、根据所述配置文件将所述预设数据通过Excel分页展示。
[0036]具体地,所述服务器在获得所述报表的预设数据和对应的配置文件之后,可以根据所述配置文件中的配置,从所述预设数据中获取相应的数据填写到Excel的表格中,将所述预设数据进行分页展示。
[0037]本发明实施例提供的基于Excel的报表展示方法,获取报表的预设数据以及所述报表对应的配置文件,然后根据配置文件将预设数据通过Excel分页展示,实现报表数据的分页展示,提高了报表数据的可读性。
此外,可以通过配置文件对报表数据的展示进行灵活配置,避免出现代码的冗余,提高了报表数据展示的灵活性。
[0038]在上述各实施例的基础上,进一步地,所述配置文件包括分页配置,所述分页配置包括分页表头配置、分页数据配置和分页表尾配置。
[0039]具体地,所述配置文件包括分页配置,所述分页配置包括分页表头配置、分页数据配置和分页表尾配置。
其中,所述分页表头配置可以设置分页表头大小、表头元素的相对行数位置、表头元素的列数位置、字体大小、字体颜色、前缀信息、表头元素数据读取关键字等信息。
分页数据配置可以设置分页表明细大小、分页表明细元素的相对行数位置、分页表明细元素的列数位置、字体颜色、分页表明细元素数据读取关键字等信息。
分页表尾配置可以设置分页表尾大小、表尾元素的相对行数位置、表尾元素的列数位置、字体大小、字体颜色、表尾元素数据读取关键字等信息,表尾元素数据例如签名和日期。
其中,元素实际的行数位置=该单元的实际起始位置+配置的元素的相对行数位置,列数位置为绝对位置。
[0040]例如,在分页表头配置中设置表头读取关键字为:account,前缀信息为:账户:,表头的位置为居中,那么所述服务器在从所述预设数据中获取数据时,查询到account:客户XXX资金账户,那么会获取客户XXX资金账户作为分页表头,并添加前缀账户,在Excel表格页面中居中显示:账户:客户XXX资金账户。
[0041]例如,在分页数据配置中设置分页数据量为20条数据/页,那么在分页展示所述预设数据时,每页最多有20条数据。
[0042]在上述各实施例的基础上,进一步地,所述配置文件还包括页头配置和页尾配置。
[0043]具体地,所述配置文件还可以包括页头配置和页尾配置,所述页头配置可以设置页头大小、页头元素的相对行数位置、页头元素的列数位置、字体大小、字体颜色、页头元素数据读取关键字等信息,页头元素数据例如为显示序列号,所述页尾配置可以设置页尾大小、页尾元素的相对行数位置、页尾元素的列数位置、字体大小、字体颜色、页尾元素数据读取关键字等信息,页尾元素数据例如为打印日期等信息。
所述页头配置和所述页尾配置的具体设置内容根据实际需要进行设置,本发明实施例不做限定。
所示,在上述各实施例的基础上,进一步地,所述预设数据包括多个分组数据;相应地,所述根据所述配置文件将所述预设数据通过Excel分页展示包括:
[0045]S1021、根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;
[0046]具体地,所述预设数据包括多个分组数据,每个分组数据都有一定的数据量。
所述服务器可以获取各个分组数据的数据量,并从所述配置文件的分页数据配置中获取分页表明细大小,然后根据每个分组数据的数据量和分页表明细大小,计算获得每个分组数据的分页数量。
再将每个分组数据按照每个分组数据的分页数量拆分成对应数量个子分组数据,可以获得多个子分组数据,所述多个子分组数据的分组数量等于各个分组数据的分页数量之和,接着根据所述多个子分组数据建立子分组列表数据。
其中,分页表明细大小可以是设置的每个分页显示的数据条数。
[0047]例如,获取一个分组数据,用该分组的数据量除以配置文件包括的分页表明细大小,如果可以整除,则该分组数据的分页数量=该分组数据的数据量/分页表明细大小,如果不能整除,则该组分页数量=向上取整(该分组数据的数据量/分页表明细大小)。
循环处理该分组数据,将其拆分为分页数量个,不大于分页表明细大小的子分组数据。
将拆分好的子分组数据加载到一个子分组列表中。
按照上述同样处理过程依次处理条每条分组数据,将每条分组数据拆分为对应的子分组数据,并加载到所述子分组列表中,直到所述预设数据中的所有分组数据处理完成,获得子分组列表数据。
其中,所述每个分组数据可以包括表头数据,表明细数据和表尾数据,而拆分过程中拆分的是表明细数据,表头数据和表尾数据保持不变,继承到子分组数据中。
分组数据的数据量是指表明细数据的数据量。
[0048]例如,报表A的预设数据包括账户1和账户2两个分组。
其中每个分组数据包括表头数据、表明细数据和表尾数据,表头数据包括账户名、币种和账号,表明细数据为账户明细,包括借贷标识、金额、交易日期、备注,表尾数据包括开户机构。
账户1的表明细数据的数据量为40条,账户2的表明细数据的数据量为75条,报表A对应的分页数据配置中设置了分页表明细大小为10条/页。
那么所述服务器可以计算获得账户1的分页数量为40/10=4,可以整除,账户1的分页数量为4,账户2的分页数量为75/10=7.5,不能整除,分页数量向上取整为8。
所以账户1的表明细数据被拆分为4个子分组数据,这4个子分组数据的大小都为10条,账户2的表明细数据被拆分为8个子分组数据,前7个子分组数据的大小为10条,最后一个子分组数据的大小为5条。
账户1的4子分组数据和账户2的8个子分组数据构成子分组列表数据,子分组列表数据包括12个子分组数据,且每个子分组数据的大小不大于10条。
在子分组列表数据中,前4个子分组数据的表头数据和表尾数据为账户1的表头数据和表尾数据,后8个子分组数据的表头数据和表尾数据为账户2的表头数据和表尾数据。
[0049]1022、根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页尾数据。
[0050]具体地,所述服务器在获得所述子分组列表数据之后,可以根据页头数据以及对应的配置信息生成Excel的页头,根据所述子分组列表数据以及对应的配置信息生成Excel 的每个分页数据,根据页尾数据以及对应的配置信息生成Excel的页尾,Excel的页头、各个
分页数据和Excel的页尾组成了Excel分页表格。
其中,所述页头数据对应的配置信息存储在所述页头配置中,所述页尾数据对应的配置信息存储在所述页尾配置中,所述子分组列表数据对应的配置信息存储在所述分页配置中。
[0051]下面以一个具体的实施例来说明Excel分页表格的生成过程:
[0052](1)定义一个当前的行数位置变量rowNo,初始值为0,和一个当前页数变量pageNo,初始值为0。
[0053](2)根据页头配置和页头数据生成Excel的页头。
[0054](3)获取所述子分组列表数据的一个子分组数据,首先生成分页表头,从分页表头配置中获取相关配置信息并获取子分组数据的表头数据,rowNo=pageNo×(分页表头大小+分页表明细大小+分页表尾大小)+页头大小,而表头中某一个单元格的行数位置=rowNo+该表头元素配置的相对行数位置,列数位置=该表头元素配置的列数位置,单元格中的文本内容为表头数据中根据配置的表头元素数据读取关键字获取的数据值。
[0055](4)生成分页表明细,从分页数据配置中获取相关配置信息并获取子分组数据的表明细数据,rowNo=pageNo×(分页表头大小+分页表明细大小+分页表尾大小)+页头大小+分页表头大小,分页表明细中的单元格的行数位置=rowNo+该条分页表明细在子分组数据中的位置,列数位置=该分页表明细元素配置的列数位置,单元格中的文本内容为表明细数据中根据配置的分页表明细元素数据读取关键字获得的数据值。
[0056](5)生成分页表尾,从分页表尾配置中获取相关配置信息并获取子分组数据的表尾数据,rowNo=pageNo×(分页表头大小+分页表明细大小+分页表尾大小)+页头大小+分页表头大小+分页表明细大小,分页表尾中的单元格的行数位置=rowNo+该表尾元素配置的相对行数位置,列数位置=该表尾元素配置的列数位置,单元格中的文本内容为表尾数据中根据配置的表尾元素数据读取关键字获取的数据值。
[0057](6)重复步骤(3)至步骤(5)依次处理所述子分组列表数据的其余的子分组数据,获得对应的分页数据,直到所有子分组列表数据中的数据处理完成,也即分页处理完成。
[0058](7)生成页尾,rowNo=(pageNo+1)×(分页表头大小+分页表明细大小+分页表尾大小),而页尾中某一个单元格的行数位置=rowNo+该页尾元素配置的相对行数位置,列数位置=该页尾元素配置的列数位置,单元格中的文本内容为页尾数据中根据配置的页尾元素数据读取关键字获取的数据值。
[0059]例如,报表A的账户1的分页数量为5页,账户2的分页数量为8页,所述服务器会遍历账户1的数据,逐条填写到5页Excel表格中,然后遍历账户2的数据,逐条填写到8页Excel 表格中,从而将报表A的预设数据分13页展示。
[0060]配置中页头大小为5;分页表头大小为5,其中账户元素行数为1,列数为1;大小为10,其中金额元素列数为3;分页表尾大小为5,其中开户机构元素行数为0,列数为2。
[0061]那么在账户2所属的第2页报表中,当前页数为5,其中账户元素实际行数=5×(分页表头大小+分页表明细大小+分页表尾大小)+页头大小+1=106,列数为1;该页第3条明细中金额元素实际行数=5×(分页表头大小+分页表明细大小+分页表尾大小)+页头大小+分页表头大小+3=113,列数为3;开户机构元素实际行数=(5+1)×(分页表头大小+分页表明细大小+分页表尾大小)+0=120,列数为2。
[0062]在上述各实施例的基础上,进一步地,所述根据各个分组数据的数据量以及所述
配置文件设置的每页数据量,获得每个分组数据的分页数量包括:
[0063]计算每个分组数据的数据量与每页数据量的商值并向上取整,获得每个分组数据的分页数量。
[0064]具体地,所述服务器用每个分组数据的数据量除以每页数据量,获得商值,然后对商值向上取整,获得每个分组数据的分页数量。
[0065]例如,所述服务器根据公式计算第j个分组数据的分页数量I j,D j为
第j个分页数据的数据量,a为每页数据量,表示向上取整。
[0066]在上述各实施例的基础上,进一步地,所述配置文件为XML文件格式。
采用XML文件来对不同报表的展示进行配置,可以通过修改XML文件来灵活的设置报表的展示形式,满足不同业务的差异化需求,提高代码的可复用性和可维护性。
[0067]本发明实施例提供的基于Excel的报表展示方法,将报表数据进行分页展示,使报表显示更加整齐简洁,提供良好的用户体验,使用XML文件作为公共的配置文件,提高代码的可复用性和可维护性,使用配置文件可灵活配置表头和分页的页面信息,满足差异化需求,同时具备可扩展性。
[0068]图3是本发明一实施例提供的基于Excel的报表展示装置的结构示意图,如图3所示,本发明实施例提供的基于Excel的报表展示装置包括:
[0069]获取单元301用于获取报表的预设数据以及所述报表对应的配置文件;其中,所述配置文件是预设的;展示单元302用于根据所述配置文件将所述预设数据通过Excel分页展示。
[0070]具体地,为了展示报表数据,获取单元301可以获取报表的预设数据,并获取报表对应的配置文件。
其中,所述配置文件是预设的,与所述报表对应,可以基于报表的种类设定不同的配置文件,并建立报表与配置文件的对应关系。
所述预设数据可以是按照设定格式预先从数据库中导出的用于生成报表的数据,具有与配置文件相匹配的格式。
[0071]在获得所述报表的预设数据和对应的配置文件之后,展示单元302可以根据所述配置文件中的配置,从所述预设数据中获取相应的数据填写到Excel的表格中,将所述预设数据进行分页展示。
[0072]本发明实施例提供的基于Excel的报表展示装置,获取报表的预设数据以及所述报表对应的配置文件,然后根据配置文件将预设数据通过Excel分页展示,实现报表数据的分页展示,提高了报表数据的可读性。
此外,可以通过配置文件对报表数据的展示进行灵活配置,避免出现代码的冗余,提高了报表数据展示的灵活性。
[0073]图4是本发明另一实施例提供的基于Excel的报表展示装置的结构示意图,如图4所示,在上述各实施例的基础上,进一步地,展示单元302包括获得子单元3021和生成子单元3022,其中:
[0074]获得子单元3021用于根据每个分组数据的数据量以及所述配置文件设置的分页表明细大小,获得每个分组数据的分页数量,根据每个分组数据的分页数量将每个分组数据拆分为多个子分组数据并根据所述多个子分组数据建立子分组列表数据;其中,所述预设数据包括多个分组数据;生成子单元3022用于根据页头数据、所述子分组列表数据、页尾数据以及各自对应的配置信息生成Excel分页表格;其中,所述预设数据包括页头数据和页。