[發明專利]報表生成方法和系統有效
| 申請號: | 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.szxzyx.cn/pat/books/201710864170.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種生成電子報表的方法
- 下一篇:一種病歷編輯器及其實現方法





