[发明专利]报表生成方法和系统有效
申请号: | 201710864170.8 | 申请日: | 2017-09-22 |
公开(公告)号: | CN107608951B | 公开(公告)日: | 2021-12-21 |
发明(设计)人: | 莫宇;凌万水;张杰 | 申请(专利权)人: | 上海金智晟东电力科技有限公司 |
主分类号: | G06F40/18 | 分类号: | G06F40/18;G06F40/186 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 200233 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报表 生成 方法 系统 | ||
1.一种报表生成方法,其特征在于,包括:
加载测试数据和word制定的报表模板;
对所述测试数据进行规格化和缓存,并从所述word制定的报表模板中解析出指令、公式、变量以及替换的处理逻辑;其中,所有解析出的指令构成相应的指令集;所有解析出的公式构成相应的公式集;所有解析出的变量构成相应的变量集;所述word制定的报表模板中解析出指令包括:读取所述word制定的报表模板中的指令内容,通过正则表达式提取指令,并删除所述指令对应段落,通过指令关键字生成指令集;剔除所述指令集中符合指令格式且非指令关键字的指令;按照预设的表达式提取规则分别从段落、图片、表格中提取出表达式,并标记表达式的位置,所述预设的表达式提取规则为正则表达式分组方式;将所述测试数据代入所述表达式中,得到与所述表达式对应的数值;将所述数值替换对应位置的表达式,并用预设的字符替换无法计算出数值的表达式;
将所述测试数据按照所述指令集、公式集、变量集以及替换的处理逻辑生成可视化报表。
2.根据权利要求1所述的报表生成方法,其特征在于,所述对所述测试数据进行规格化和缓存,包括:
将所述测试数据转化为WordTable数据结构,并采用JSON编码格式存储,对于所述测试数据中的二进制图片数据采用Base64编码进行处理以及标识属性;所述WordTable数据结构包括name、desc、head、body四个关键属性,其中:
name用于索引关键字,所述关键字为符合程序变量命名规范的字母或者数字组合;
desc用于进行数据的描述;
head为对应字符串数组,所述head的内容为列块信息描述;
body为表格数据。
3.根据权利要求1所述的报表生成方法,其特征在于,所述从所述word制定的报表模板中解析出指令、公式、变量以及替换的处理逻辑,包括:
从所述word制定的报表模板的最后段落中解析出指令,并生成指令集;
从所述word制定的报表模板的段落和表格中解析出变量,并生成变量集;
从所述word制定的报表模板的段落和表格中解析出公式,并生成公式集和替换的处理逻辑。
4.根据权利要求1所述的报表生成方法,其特征在于,所述按照预设的表达式提取规则分别从段落、图片中提取出表达式,包括:
A1:判断所述word制定的报表模板中的段落是否包含有变量,若未包含有变量,则结束流程;否则执行步骤A2;
A2:判断所述段落中是否包含有文本命令,若是,则执行步骤A3,若否,则执行步骤A5;
A3:通过循环函数getRuns()获取所有XWPFRun集合;
A4:使用正则表达式(?<=\\$\\{)([\\s\\S]*?)(?=\\})分组提取变量,替换变量采用${item2[0]#″ff0000″}格式表示,其中字符#左侧的字符串表示计算表达式,字符#右侧的字符串表示字体颜色的RGB值;
A5:判断所述段落中是否包含有图片命令,若是,则执行步骤A6;若否,则结束流程;
A6:使用正则表达式(?<=\\#\\{)([\\s\\S]*?)(?=\\})分组提取图片表达式,图片格式采用json格式表示:#{″height″:200,″width″:600,″data″:″img″},其中height表示图片显示的高度,width表示图片显示的宽度,data表示图像数据变量关键字,img表示base64编码的图像数据变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海金智晟东电力科技有限公司,未经上海金智晟东电力科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710864170.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生成电子报表的方法
- 下一篇:一种病历编辑器及其实现方法