在Excel模板文件中加标记的报表输出方法

文档序号:10624756阅读:216来源:国知局
在Excel模板文件中加标记的报表输出方法
【专利摘要】本发明在Excel模板文件中加标记的报表输出方法,该方法视Excel软件作报表设计器,通过在Excel模板文件中的特定标记来输出数据,本发明可以将List数组数据循环填入表格,可以将实体类数据、字典类数据的各个成员填入既定的单元格,可以将简单类型的参数填入既定单元格。本发明省去了报表设计器的研发工作,利用现有的Excel软件作为报表设计器,提升了用户设计报表的用户体验,以Excel文件作报表输出的模板文件,克服了其他类型报表模板对Excel表述不全的不足,不存在诸如页边距设定不一致的情况,只要设计好了模块,输出后即可打印,且与模板最初的设计毫无差异。
【专利说明】
在Excel模板文件中加标记的报表输出方法
技术领域
[0001]本发明属于软件研发领域,主要用于生成Excel报表。
【背景技术】
[0002]当前的报表软件种类繁多,这些软件大多由二个部分组成:一是报表设计器,二是报表输出模块。其中,报表设计器大多是一个独立可运行的程序,报表输出模块是一个可被应用软件调用的组建或服务。这些报表软件,其报表设计器的功能有:1指定单元格的格式,如:单元格的合并、字体、颜色、边框等,也就是Excel具有的功能;2指定单元格关联的数据,3 —些其他特殊的设置,如纵向合并等值单元格等。
[0003]由于:1报表设计软件的设计器因为要实现excel中的许多功能,而研发工作量巨大;2作为报表软件,在设计器上超越或者追赶Excel是不必要也是不现实的,这就必然导致设计器不可能十分好用;3由于报表软件和Excel软件是二个不同的实现体,在报表设计器中设计报表其打印效果与导出的Excel表格再打印的效果存在很多差别,如页边距对于不上,用户的设置有难以反应的模板文件上;4EXCel软件已经深入用户的日常工作和生活,并多形成习惯,用户更愿意操作Excel软件而不愿意操作报表设计软件;5比较报表输出模板和报表设计器模块,报表输出模块才是报表软件的核心。
[0004]另外,由于报表软件涉及对数据库操作和数据库的结构,其操作过程比较复杂,90%以上的最终用户是不用报表软件进行报表设计的,使用报表软件的大多是软件的研发人员,但是,对软件研发人员来说,更能体现其客户价值的是软件输出模块,而非设计器,因而,用Excel替代表设计器,把报表工作重心转移到报表输出模块上,才是最合理的安排。
[0005]由此可见,如果设计出一种在Excel模板文件中加标记的报表输出方法,既可省去研发报表设计器的工作,又便于用户使用。

【发明内容】

[0006]本发明公开一种在Excel模板文件中加标记的报表输出方法,该方法将Excel软件视作报表设计器,通过在Excel表格上增设标记的方法制作报表模块,该方法的报表导出过程为:先读取模板,再填充数据。本发明可将数组循环填入既定区域,可将业务实体填入既定区域,可将字典类数据填入既定区域,可将单一变量类数据填入既定区域,填入既定区域。
[0007]上述业务实体,是指用于描述一个具体事物的,实体上有用于描述该事物特征的属性值,如:描述一个用户的实体,该实体上有用户名、用户代码、用户所述的组织机构、用户设置的登录密码等信息。
[0008]为实现上述目标,本发明提供有一个报表输出模块,该输出模块的核心函数实现报表的输出,该函数的第一个参数是Excel模板文件名称,紧跟其后的是一组不定长度的参数,在此,本发明将后面的这些参数依次命名为:ArgO, Argl, Arg2, Arg3,…,。
[0009]报表输出模块的核心函数形式如下:ExcelHelper.Export (tempFile, ArgO, Argl,...);
为实现本发明的既定目标,如图1所示,本发明对Excel模板的设计做出如下约定:
1.Excel模板文件由二个页面组成,一是带特定标记的表格页(以下简称“模板页”),二是“模板设置”页(以下简称“设置页”)。
[0010]2.本发明将按照模板页进行报表的输出,单元格合并、字体、字号、页眉、页脚、页边距均来自本模板页中的表格设计。
[0011]3.传入参数该输出到表格中的哪个位置,是由模板页中的特定标记来标识的。
[0012]4.页面上的特定标记是以“{}”括起来的文本,置入表格中各个单元格的的文本上,如:{Arg4.UserName }。
[0013]5.如图1中“{Arg2}”,当传入参数为简单数据类型(如int, double, float,string, datetime等)时,模板页上的特定标记类似于:{Arg2},{Arg3},{Arg5}等,也就是参数的名称,本发明在报表输出的过程中,会将相应的值填入该单元格,单元格的格式(如字体、字号、文字颜色、加粗、边框、单元格背景色等)是在报表设计的过程中预置的,本发明不对此作任何工作。
[0014]6.当传入参数为业务实体或Dict1nary字典数据时,模板页上的特定标记类似于:{Arg4.UserName }, {Arg4.UserCode }, {Arg4.Department},特定标记中的内容分二部分,并以”号隔开,第一部分为参数名称,第二部分为参数成员的名称,本发明在报表输出的过程中,会将相应的值填入该单元格,单元格的格式(如字体、字号、文字颜色、加粗、边框、单元格背景色等)是在报表设计的过程中预置的,本发明不对此作任何工作。
[0015]7.当传入参数为业务实体的数组时(如ListOJser〉),模板页上的特定标记类似于:{Arg4.UserName }, {Arg4.UserCode }, {Arg4.Department},特定标记中的内容分二部分,并以”号隔开,第一部分为参数名称,第二部分为参数成员的名称,本发明在报表输出的过程中,有如下几个步骤:
①从设置页读取参数对应的区域。
[0016]②分析该参数实体成员的各个属性分布的区域;
③综合上述二个区域,如果设置页的区域有效,就采用设置页的区域,如果设置页的区域无效,就采用上述第二步中分析出的区域。
[0017]④以上述区域为循环体,依次在该区域的下方,将该区域复制N-1份,N为参入如参数List数组的成员数量,复制后的该区域数量为N份,每份对应List数组的一个成员;
⑤依据单元格中的标记,以及对应的来自List实体成员数据,将该实体数据的各个属性与区域中的标记进行进行匹配,填充复制区域中的各个单元格。
[0018]8.设置页是对参入参数进行补充说明的,主要存储List入口参数对应的区域。
[0019]如图2所示,有些报表,依据植入的标记,并不能判定循环区域,这时就需要借助模板设置页的补充设置。
[0020]如图3所设置页中的每行,都是对报表输出模块中输出函数的说明,以RANG为关键字的,是对List数组类参数进行补充说明的,用以说明循环区域,RANG=A2:C5,即表示A2:C5对于的单元格为该参数的循环区域。
[0021]本发明的优点是:
在Excel模板文件中增设标记的方法来输出报表,省去了报表设计器的研发工作,利用现有的Excel软件作为报表设计器,提升了用户设计报表的用户体验,以Excel文件作报表输出的模板文件,克服了其他类型报表模板对Excel表述不全的不足,不存在诸如页边距设定不一致的情况,只要设计好了模块,输出后即可打印,且与模板最初的设计毫无差巳
[0022]说明书附图
图1:典型Excel模板文件样式。
[0023]图2:需要补充循环区域报表样式。
[0024]图3:模板设置页样式。
[0025]图4:报表输出整体流程图。
[0026]图5:字典类数据输出流程图。
图6:数组类型数输出流程图。
【具体实施方式】
[0027]本发明在Excel模板文件中加标记的报表输出方法,该方法视Excel软件作报表设计器,通过在Excel模板文件中的特定标记来输出数据,本发明可以将List数组数据循环填入表格,可以将实体类数据、字典类数据的各个成员填入既定的单元格,可以将简单类型的参数填入既定单元格。本发明省去了报表设计器的研发工作,利用现有的Excel软件作为报表设计器,提升了用户设计报表的用户体验,以Excel文件作报表输出的模板文件,克服了其他类型报表模板对Excel表述不全的不足,不存在诸如页边距设定不一致的情况,只要设计好了模块,输出后即可打印,且与模板最初的设计毫无差异。
[0028]为实现上述目标,本发明提供有一个报表输出模块,该输出模块的核心函数实现报表的输出,该函数的第一个参数是Excel模板文件名称,紧跟其后的是一组不定长度的参数,在此,本发明将后面的这些参数依次命名为:ArgO, Argl, Arg2, Arg3,…,。
[0029]报表输出模块的核心函数形式如下:
ExcelHelper.Export (tempFile, ArgO, Argl,…);
在实际使用中,本发明的报表输出过程如图4所述,输出函数先读取模板,再输出报表,输出报表是一个对参数序列遍历输出的过程,如果参数是List数组类型,则启动数组类型数据输出到Excel过程;如果参数是实体类型,则本发明先将其转换为字典类型,在输出到Excel ;如果参数是字典类型,则启动字典类型数据输出到Excel过程;如果参数属于基本类型,则启动基本类型数据输出到Excel过程。
[0030]所述实体类型,是指用于描述一个具体事物的,实体上有用于描述该事物特征的属性值,如:描述一个用户的实体,该实体上有用户名、用户代码、用户所述的组织机构、用户设置的登录密码等信息。
[0031]字典类参数的输出流程图如图5所示,在实际使用中,本发明遍历字典的各个成员,组合形成如{Arg2.Name}参数名称,再在Excel模板文件中寻找标记,如果找到了,就将该字符串,替换为字典成员的值。
[0032]List数组类型数据的输出流程如图6所示,在实际使用中,本发明先从模板设置页中读取循环区域,如果未读到就从模板页中分析循环区域的范围,获取到数组输出的循环区域范围后,先将Excel模板文件中该范围一下的内容复制到该区域填充范围以下的单元格中,在按照模板的格式将循环区域的格式复制成N份,其中N为数组的长度,最后循环数组填充数据。
[0033]在实际使用中,List数组管理的数据大多是实体类型,在拿实体填充表格的过程,首先是将实体类型转换为字典类型,遍历该字典的各个成员,组合形成如{Arg2.Name}参数名称,再在Excel模板文件复制出来的区域中寻找标记,如果找到了,就将该字符串,替换为字典成员的值。
[0034]本发明的优点是:
在Excel模板文件中增设标记的方法来输出报表,省去了报表设计器的研发工作,利用现有的Excel软件作为报表设计器,提升了用户设计报表的用户体验,以Excel文件作报表输出的模板文件,克服了其他类型报表模板对Excel表述不全的不足,不存在诸如页边距设定不一致的情况,只要设计好了模块,输出后即可打印,且与模板最初的设计毫无差巳
[0035]以上所述是本发明的较佳实施例及其所运用的技术原理,对于本领域的技术人员来说,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案基础上的等效变换、简单替换等显而易见的改变,均属于本发明保护范围之内。
【主权项】
1.在Excel模板文件中加标记的报表输出方法,其特征在于: 该方法视Excel软件作报表设计工具,在Excel表格中增加特定的标记后的文件作为报表输出模板,本发明在输出报表的过程中,是先读取模板文件,再输出报表的。2.如权利要求1所述,在Excel模板文件中加标记的报表输出方法,其特征在于: 本发明提供有一个报表输出模块,该输出模块的核心函数实现报表的输出,该函数的第一个参数是Excel模板文件名称,紧跟其后的是一组不定长度的参数,传入的参数是业务数据,将被输出到报表文件中。3.如权利要求1所述,在Excel模板文件中加标记的报表输出方法,其特征在于: Excel模板文件由二个页面组成,一是模板页,即:带特定标记的表格页,二是设置页,即:“模板设置”页。4.如权利要求3所述,在Excel模板文件中加标记的报表输出方法,其特征在于: 模板页上的特定标记是以“ H”括起来的文本;当传入参数为简单数据类型(如int, double, float, string, datetime等)时,模板页上的特定标记类似于:{Arg2}, {Arg3}, {Arg5}等,也就是参数的名称,本发明在报表输出的过程中,会将相应的值填入该单元格;当传入参数为业务实体或字典数据时,模板页上的特定标记类似于:{Arg4.UserName}, {Arg4.UserCode}, {Arg4.Department},特定标记中的内容分二部分,并以”号隔开,第一部分为参数名称,第二部分为参数成员的名称,本发明在报表输出的过程中,会将相应的值填入该单元格;当传入参数为业务实体的数组时,模板页上的特定标记类似于:{Arg4.UserName }, {Arg4.UserCode }, {Arg4.Department},特定标记中的内容分二部分,并以”号隔开,第一部分为参数名称,第二部分为参数成员的名称,本发明在报表输出的过程中会将对应区域复制N份,再循环填入数组中的数据。5.如权利要求3所述,在Excel模板文件中加标记的报表输出方法,其特征在于: 设置页是对参入参数进行补充说明的,主要存储数组类入口参数对应的区域;设置页中的每行,都是对报表输出模块中输出函数参数的说明,以RANG为关键字,是对List数组类参数进行补充说明的,用以说明循环区域,RANG=A2:C5,即表示A2:C5对于的单元格为该参数的循环区域。
【文档编号】G06F17/24GK105988983SQ201510067341
【公开日】2016年10月5日
【申请日】2015年2月10日
【发明人】尹宪文, 尹搏, 李玉奎, 杜春辉
【申请人】北京艾力泰尔信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1