一种易于二次开发的报告文档自动化方法

文档序号:1127732 发布日期:2020-10-02 浏览:19次 >En<

阅读说明:本技术 一种易于二次开发的报告文档自动化方法 (Report document automation method easy for secondary development ) 是由 李浩然 王季孟 张长志 周连升 甘智勇 倪玮晨 赵毅 *** 王建 于 2020-06-04 设计创作,主要内容包括:本发明涉及一种易于二次开发的报告文档自动化方法,其技术特点是:在报告文档中使用占位符替换需要根据试验数据更新的文本,并根据如对算法将试验数据按照报告文档中出现的顺序入队生成队列数据,使用COM模型的函数对报告文档的占位符进行检索,当检索到占位符时,并将队列数据中对应的数据替换该占位符,循环至报告文档的末尾,输出更新数据后的报告文档。本发明实现了报告文档简单便捷的自动化生成功能,并保留了报告文档现有的格式,具有学习成本低,开发效率高的优势,并能够节约工作人员制作报告文档的时间。(The invention relates to a report document automation method easy for secondary development, which is technically characterized in that: replacing a text which needs to be updated according to test data by using a placeholder in a report document, enqueuing the test data according to the sequence appearing in the report document according to an algorithm to generate queue data, retrieving the placeholder of the report document by using a function of a COM (component object model) model, replacing the placeholder by corresponding data in the queue data when the placeholder is retrieved, circulating to the tail of the report document, and outputting the report document after the data is updated. The invention realizes the automatic generation function of the report document, reserves the existing format of the report document, has the advantages of low learning cost and high development efficiency, and can save the time for workers to make the report document.)

一种易于二次开发的报告文档自动化方法

技术领域

本发明属于信息技术领域,尤其是一种易于二次开发的报告文档自动化方法。

背景技术

Word是世界上使用范围最广泛的文字处理系统,各行各业每天都有大量的Word报告需要编制,而对于大多数报告而言,报告的格式模板都是相同的,不同的只是其中的数据元素,这些数据元素包括文字、表格、图片、图表,各种数学化学公式等等,除了这些元素外,还有对于样式的控制如字体、字号、顔色、段前距、段后距、字间距、行间距、项目符号、缩进、页眉页脚、边框、底纹等。一份报告的編制,如果全由人工来操作排版处理,那工作量将是巨大而繁琐的,耗时高且效率低下,准确性也相对较低,且在操作过程中容易出现排版样式错误。

目前,报告文档自动化的方案主要有以下几种:

一是将报告的格式、样式、静态元素、动态数据等全部固化在程序代码中,这种方式非可视化,静态元素与动态数据完全混合在一块,且全由代码组成,实现不够灵活,难以扩展、维护成本非常高。

二是利用动态网页技术生成网页报告,即预先在Html标签中留出相应的位置定义变量,然后运行过程中进行替换。这种方式都是专业级开发使用的工具、且排版效果不够专业,诸如对报告进行分页、进行页眉、页脚的控制、以及报告目录的生成、报告中变量中内容的多少对分页的影响等都比较难以精细化控制、在打印过程中常常出现打印出现页码错误、页眉、页脚不在相应的位置,在灵活性、排版专业性较差。

综上所述,在现有技术中,报告的自动生成方式存在模板与数据混合导致实现不够灵活、排版效果差、报告格式单一的问题,无法基于现有的报告文档,快速而有效地实现报告自动化,对于该问题,目前尚未提出有效解决方案。

发明内容

本发明的目的在于克服现有技术的不足,提出一种易于二次开发的报告文档自动化方法,能够快速有效地实现报告自动化功能。

本发明解决其技术问题是采取以下技术方案实现的:

一种易于二次开发的报告文档自动化方法,包括以下步骤:

步骤1、根据报告文档需求,在Word中对现有报告文档使用统一的占位符替换所有需要根据试验数据更新的文本;

步骤2、调用COM模型中的win32.client.gencache.EnsureDispatch()函数,生成Word.Application静态代理对象;

步骤3、打开报告文档模板,调用COM模型中的Word.Application.Documents.Open函数,并输入报告文档模板存储路径,生成报告文档模板对象;

步骤4、采用队列数据模型,根据入队算法将试验数据按照报告文档中出现的顺序入队,并生成队列数据;

步骤5、调用COM模型中的Word.Application.Documents.Selection.Find()函数,从报告文档开始位置检索占位符;

步骤6、当检索到占位符时,队列数据提取对应的实验数据,并整理数据的输出格式;

步骤7、调用COM模型中的Word.Application.Documents.Selection.TypeText()函数,将查找到的占位符替换为队列数据中对应的数据;

步骤8、从检索到占位符的位置向后继续检索占位符,并重复步骤5至步骤7,直至检索到报告文档结束,输出更新数据后的报告文档。

而且,所述步骤1中占位符由连续若干位字符组成。

而且,所述由连续若干位字符组成的占位符不与报告文档内任意相同长度字符串重复,并且各个占位符保证一致。

而且,所述步骤4中入队算法按照报告文档模板中的写入逻辑进行设计。

本发明的优点和积极效果是:

本发明通过在报告文档中使用占位符替换需要根据试验数据更新的文本,将试验数据按照报告文档中出现的顺序入队生成队列数据,使用COM模型的函数将报告文档中的占位符替换为相对应队列数据中的各个数据,并输出更新数据后的报告文档。实现了报告文档简单便捷的自动化生成,并保留了报告文档现有的格式,具有学习成本低,开发效率高的优势,并能够节约工作人员制作报告文档的时间。

附图说明

图1是本发明的流程框图。

具体实施方式

以下结合附图对本发明做进一步详述。

一种易于二次开发的报告文档自动化方法,如图1所示,包括以下步骤:

步骤1、制作报告文档模板,使用Word对现有报告文档进行编辑,并使用统一的占位符替换现有报告文档中所有需要根据试验数据更新的文本。

在本步骤中,所述占位符由连续若干位字符组成并保持一致,其中占位符的内容由开发人员指定。并且,占位符需要保证不与报告文档内任意相同长度字符串重复,以及是否包含生僻字或特殊字符。在测试中,出于保证正则匹配算法的效率,占位符的长度应为3至6个字符。

步骤2、调用COM模型中的win32.client.gencache.EnsureDispatch()函数,生成Word.Application静态代理对象。

在本步骤中,所述的COM是ComponentObjectModel的缩写,是一个独立于平台的,分布式的,面向对象的应用模型,用于创建可以交互的Win32程序组件。COM是微软复合文档OLE和Internet组件ActiveX技术的基础技术。COM对象通过多种编程语言创建,利用COM可以实现对Word程序底层的控制,从而编写试验报告脚本,实现对现有报告文档的自动编写。

步骤3、打开报告文档模板,调用COM模型中的Word.Application.Documents.Open函数,并输入报告文档模板存储路径,生成报告文档模板对象。

步骤4、采用队列数据模型,根据入队算法将试验数据按照报告文档中出现的顺序入队,并生成队列数据。

在本步骤中,所述入队算法按照报告文档模板中的写入逻辑设计。例如:对于Word表格中的数据入队,先定义行入队函数,使同一行的各单元格按数据从左到右顺序入队;再定义表格入队函数,按顺序重复调用行入队函数,使同一表格的各行数据按从上到下顺序入队;最后在报告文档入队函数中,按顺序调用表格入队函数,使报告文档中各表格数据按从上到下顺序入队。

步骤5、调用COM模型中的Word.Application.Documents.Selection.Find()函数,从报告文档开始位置检索占位符。

步骤6、当检索到占位符时,队列数据提取对应的实验数据,并整理数据的输出格式。

步骤7、调用COM模型中的Word.Application.Documents.Selection.TypeText()函数,将查找到的占位符替换为队列数据中对应的数据。

步骤8、从检索到占位符的位置向后继续检索占位符,并重复步骤5至步骤7,直至检索到报告文档结束,输出更新数据后的报告文档。

根据上述一种易于二次开发的报告文档自动化方法,对某次检测数据报告文档进行试验,

其中,报告文档的内容为:

_年_月_日_,负荷为_MW,调度将AGC指令设为_MW,负荷变化率设定为___MW/min,实际负荷响应时间为___s,至___光伏发电站实际负荷变化至___MW,实际负荷变化率___MW/min。期间最大动态偏差为___MW,最大静态偏差为___MW。

设定占位符为<++>,并使用占位符替换报告文档中所有需要根据试验数据更新的文本,生成带占位符的报告文档模板为:

<++>年<++>月<++>日<++>,负荷为<++>MW,调度将AGC指令设为<++>MW,负荷变化率设定为<++>MW/min,实际负荷响应时间为<++>s,至<++>光伏发电站实际负荷变化至<++>MW,实际负荷变化率<++>MW/min。期间最大动态偏差为<++>MW,最大静态偏差为<++>MW。

根据入队算法将试验数据按照报告文档中出现的顺序入队,生成的队列数据为:

2019,8,21,12:07:09,3.20,28.00,4.00,1,12,11,41,26.16,5.01,0.91,0.46

本方法运行完成后,输出的报告文档为:

2019年8月21日12:07:09,负荷为3.20MW,调度将AGC指令设为28.00MW,负荷变化率设定为4.00MW/min,实际负荷响应时间为1s,至12:11:41光伏发电站实际负荷变化至26.16MW,实际负荷变化率5.01MW/min。期间最大动态偏差为0.91MW,最大静态偏差为0.46MW。

其中,所有占位符均替换成了对应的试验数据,且报告文档的格式未变,准确生成了更新数据后的报告文档。

通过对于上述某次检测数据报告文档进行试验,本方法能够生成数据更新后的报告文档模板,实现了简单便捷的实现报告文档自动化生成的功能,并保留了报告文档现有的格式,具有学习成本低,开发效率高的优势,并能够节约工作人员制作报告文档的时间。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:文本相似度确定方法、装置、设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!