一种基于可视化模板的报表生成方法技术

技术编号:27561242 阅读:10 留言:0更新日期:2021-03-09 22:03
本发明专利技术提出的一种基于可视化模板的报表生成方法可以基于word设计模版,支持指令、变量、条件语句、函数的逻辑执行和结果替换,通过对word进行重构和数据替换来生成需要报表,最终报表结果通过word形式展示,报表模板的设计不仅可以可视化的进行,同时可以借助于指令、变量、条件语句、函数灵活地构建实际需要的展示的报表结果,使用方法便捷、灵活、易于使用。易于使用。易于使用。

【技术实现步骤摘要】
一种基于可视化模板的报表生成方法


[0001]本专利技术涉及计算机领域,具体涉及一种基于可视化模板的报表生成方法。

技术介绍

[0002]目前常用的报表,设计专业很强,针对于特定的应用环境,存在扩展性不足和通用性不强的弊端。Office软件是目前使用最为普遍的办公软件,其中的word模板中就自带有报表引擎。word模板的报表引擎的实质是实现对变量表达式的计算和对带有word排版格式的变量表达式进行替换,从而生成用户需求的报表。
[0003]但是,在通过word制定模板实现可视化编辑模板时,段落中文本内容会进行随机分布,因此造成无法正确提取计算表达式或者非表达式部分被错误替换的情况出现,并最终影响可视化编辑模板的正确生成,并且常用的报表工具对于word的支持显得不够充分。

技术实现思路

[0004]本专利技术提出了一种基于可视化模板的报表生成方法,,可以应用在模型校验工具的校验结果数据上,根据校验结果数据的生成报表。
[0005]本专利技术提出了一种基于可视化模板的报表生成方法,其特征在于,包括:
[0006]步骤S1:根据实际报表需求,在word文档中编写相应的指令,构建报表模板;
[0007]步骤S2:对模板文档定义的指令进行读取,并构建指令集合;
[0008]步骤S3:构建段落、图片以及表格报表处理工具,并分别对文档中段落、图片、表格进行预处理;
[0009]步骤S4:基于构建的指令集合,对指令进行执行;
[0010]步骤S5:输出报表结果。
[0011]优选的,所述步骤S1包括:
[0012]通过模型校验工具校验模型文件产生模型校验结果数据,基于WordTable数据结构格式化模型校验结果数据,模型校验结果数据用于填充报表。
[0013]优选的,所述步骤S2还包括:
[0014]判断指令为循环指令还是普通指令。
[0015]优选的,所述步骤S2还包括:
[0016]循环指令用于实现对多条数据的替换,普通指令用于实现对单条数据的替换。
[0017]优选的,所述替换包括:
[0018]直接进行数据替换。
[0019]优选的,所述替换包括:
[0020]基于条件判断语句与函数进行数据替换。
[0021]优选的,所述步骤S3包括:
[0022]基于Apache POI工具对word文档进行操作,将word文档中分散的段落内容进行结构重构,归并到同一个XWPFRun中。
[0023]本专利技术设计的基于可视化模板的报表生成工具可以基于word设计模版,支持指令、变量、条件语句、函数的逻辑执行和结果替换,通过对word进行重构和数据替换来生成需要报表,最终报表结果通过word形式展示。报表模板的设计不仅可以可视化的进行,同时可以借助于指令、变量、条件语句、函数灵活地构建实际需要的展示的报表结果,使用方法便捷、灵活、易于使用。
附图说明
[0024]下面将结合附图及实施例对本专利技术作进一步说明,附图中:
[0025]图1为本专利技术实施例中生成报表逻辑流程图;
[0026]图2为本专利技术实施例中word报表文档数据替换执行流程图。
具体实施方式
[0027]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0028]本专利技术提供的报表生成方法,可以应用在模型校验工具的校验结果数据上,根据校验结果数据的生成报表。
[0029]参见图1,本实施例中。基于Apache POI和JEXLEngine引擎对自定义的word模板文档进行处理,通过数据替换和文档结构重构生成需要的报表文件。具体的实现步骤如下:
[0030]S1:根据实际报表需求,在word文档中编写合适的指令,构建报表模板。通过模型校验工具校验模型文件产生模型校验结果数据,基于WordTable数据结构格式化模型校验结果数据,模型校验结果数据用于填充报表。
[0031]S2:基于制定的报表模板,通过对模板文档定义的指令进行读取,判断指令为循环指令还是普通指令,并构建指令集合。循环指令用于实现对多条数据的替换,普通指令用于实现对单条数据的替换,单条数据替换中,可直接进行数据替换,也可基于条件判断语句与函数进行数据替换。
[0032]S3:分别对文档中段落、图片、表格进行预处理。文档由表格、段落构成,段落由文本和图片组成,表格中单元格具体内容由段落构成。基于Apache POI工具对word文档进行操作,将word文档中分散的段落内容进行结构重构,归并到同一个XWPFRun中,便于后续进行数据替换,具体处理方法参照专利报表生成方法和系统。表格由行集合构成,行由单元格集合构成,单元格由段落集合构成,处理段落的逻辑与上述一致。
[0033]S4:基于构建的指令集合,对指令进行执行,基于JexlEngine和JexlContext实现变量替换以及条件语句和函数的执行。基于Apache POI工具结合指令完成图片替换、单元格合并、分页等操作。具体的执行流程如图1所示,逻辑执行步骤在S41-S43中展示。
[0034]S41:处理的对象分为段落、图片、表格,对段落进行处理,根据word模板进行数据填充,具体的执行逻辑由步骤S411-S414展示,执行流程如图2所示。
[0035]S411:进行段落处理,读取段落内容,如果是普通指令,基于正则表达式提取变量表达式,变量表达式包含直接替换的变量、条件语句、数组、函数。如果是循环指令,需先通
过正则表达式,对循环指令进行解析,后续通过循环对解析出的变量,按照普通指令的逻辑进行处理。
[0036]S412:获取解析后的变量表达式集合,如果变量表达式不是条件语句,基于JexlContext实现变量表达式与对应数据的映射转换,涉及函数,则基于函数执行获取数据结果。本专利技术中的报表工具支持多种函数,其中,aV(lists,col)用于计算lists变量对应数据第col列最大值;aH(lists,row)用于计算lists变量对应数据第row行最大值;iV(lists,col)用于计算lists变量对应数据第col列最小值;iH(lists,row)用于计算lists变量对应数据第row行最小值;sV(lists,col)用于计算lists变量对应数据第col列之和;sH(lists,row)用于计算lists变量对应数据第row行之和;ev(lists,col,param)获取lists变量对应数据第col列等于param的数量;eh(lists,col,param)获取lists变量对应数据第row行等于param的数量;df(fmt,time)用于时间格式化,fmt为格式化字符串,time为秒数,fmt格式为yyy本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可视化模板的报表生成方法,其特征在于,包括:步骤S1:根据实际报表需求,在word文档中编写相应的指令,构建报表模板;步骤S2:对模板文档定义的指令进行读取,并构建指令集合;步骤S3:构建段落、图片以及表格报表处理工具,并分别对文档中段落、图片、表格进行预处理;步骤S4:基于构建的指令集合,对指令进行执行;步骤S5:输出报表结果。2.如权利要求1所述的一种基于可视化模板的报表生成方法,其特征在于,所述步骤S1包括:通过模型校验工具校验模型文件产生模型校验结果数据,基于WordTable数据结构格式化模型校验结果数据,模型校验结果数据用于填充报表。3.如权利要求2所述的一种基于可视化模板的报表生成方法,其特征在于,所述步骤S...

【专利技术属性】
技术研发人员:杜建陆一鸣吕广宪刘鹏王立岩段祥骏李运硕冯德志张杰蒋宏图
申请(专利权)人:国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1