基于VSTO的Word数据自动化提取报告生成系统的设计与开发

点赞:12720 浏览:48250 近期更新时间:2024-03-21 作者:网友分享原创网站原创

摘 要:随着汽车检测技术的发展,越来越多的汽车检测报告随之生成,但是这些检测报告中的数据不易提取,无法对检测数据的二次加工和分析.鉴于此,本文提出了一种基于VSTO的报告数据自动化提取和报告生成的系统.首先,结合现有检测报告设计Word数据自动化提取模板.然后利用VSTO相关技术对Word进行二次开发,实现对模板数据的自动化提取,并将数据导入到数据库中,便于对检测数据进行多维度的分析.同时,系统可以根据数据库中的数据生成相应的检测报告.

关 键 词 :Word;数据提取;报告生成;VSTO

中图分类号:TP317.2

Word是一种应用广泛的文字处理系统,随着汽车检测行业的发展,越来越多的Word检测文档需要生成,然而这些检测报告格式不统一,存在文档管理混乱、数据提取困难、数据查询不便、数据无法进行二次加工和分析等问题.本文利用VBA(Visual Basic For Application)和VSTO(Visual Studio Tools for Office)相关技术,对Word2010进行二次开发,通过写作Word文档模板和Word外接程序的开发,对Word输入数据有效性的验证、Word数据自动化提取以及Word检测报告的生成.实现了检测报告统一、集成管理,便于对检测报告数据进行分析,挖据数据背后潜在的应用价值.

1.系统的总体框架设计

系统选用Microsoft Visual Studio 2010作为主要开发平台,选用C#为编程语言对微软的Word 2010软件进行写作,同时借助Word内嵌的VBA对数据有效性进行验证.系统的总体框图如图1所示,分为三部分,第一部分Word报告信息的自动化提取,该部分首先对现有报告进行分析,然后进行Word模板的设计以及外接程序的开发,实现数据自动化提取.第二部分是数据库的设计,本系统的数据库一方面是存储Word文档提取的数据,另一方面为Word报告的生成提供数据来源.第三部分是检测报告的生成,根据数据库中的数据和检测报告模板,生成相应的检测报告.

2.Word二次开发技术分析

软件二次开发,主要指的是对现有的某个软件进行功能扩展、写作,用户根据自身需求在该软件平台上进行第二次有针对性的开发,一般来说都不会改变软件原有的内核.Word二次开发,即是对Word办公软件进行二次开发,主要的技术是VBA和VSTO.

VBA是一种完全面向对象体系结构的编程语言,Word办公软件内嵌了VBA,为用户提供Word应用中的自定义功能.在Word 2010版本中,在开发工具菜单栏中,可以实现对宏的基本操作,如录制、编辑和运行宏等.

VSTO对Word二次开发是一种全新的跨越,它基于Visual Studio开发平台,将Word文档或程序作为对象进行写作.在Visual Studio中,可以对常用Office组件进行文档和外接程序的开发.

3.数据自动化提取

数据自动化提取模块是系统的核心模块,包括Word模板的写作和数据自动化提取程序的开发.其中模板写作使Word文档格式统一,确保模板填写数据的规范性和有效性.数据自动化提取程序根据需要从模板的特定位置上提取出数据.

3.1 Word模板的设计

Word模板设计的好坏关系到后续功能的实现,因为数据自动化提取和检测报告的生成,都是以模板为依托.Word模板的设计在现有检测报告的基础上完成的,它主要分为以下几个步骤:

(1)分析现有的检测报告,确定报告中那个位置上的数据需要被提取,然后用符号进行标记,如{R_001}、{R_002}等.

(2)将文档保存为XML格式的文档,然后用正则表达式相关技术对XML格式文档中的特殊标记位置进行替换,使相应的位置转换为书签,后续文档录入实际上是对书签文字进行编辑.

(3)将上一步骤的XML文件转换为Doc文件,然后在利用VSTO的Word文档写作功能,对Doc模板增加相应控件,如时间控件、图片控件以及数据校验按钮.

基于VSTO的Word数据自动化提取报告生成系统的设计与开发参考属性评定
有关论文范文主题研究: 关于自动化的论文范文文献 大学生适用: 函授毕业论文、高校大学论文
相关参考文献下载数量: 57 写作解决问题: 怎么写
毕业论文开题报告: 论文模板、论文结论 职称论文适用: 技师论文、职称评初级
所属大学生专业类别: 怎么写 论文题目推荐度: 优质选题

(4)对特定要求的数据需要进行校验,采用Office内置的VBA编程技术对数据的有效性进行校验,校验的流程如图2所示.


3.2 数据自动化提取程序设计

数据自动化提取程序是对设计模板上固定位置上的数据进行提取,是对Word程序功能的写作,在Word原有菜单栏项增加数据提取菜单栏,这里用到VSTO的外接程序的开发.为了降低程序的耦合性,提高代码的重用性,程序在开发过程中采用了基于MVC三层架构设计,包括模型层、视图层、逻辑控制层,其中模型层是对Word底层模型进行重新组合与设计.逻辑控制层主要是对数据提取的逻辑模块功能进行划分,包括用户管理模块、数据提取模块、数据上传模块.表示层主要是界面展示.

对于文字格式的信息可以直接根据位置进行提取,而对于图片格式的数据,需要进行转换,因为在Word中图片采用的是Base64的编码格式,要想对Word中的图片数据进行提取,首先要查找定位图片对应的Base64编码,然后将Base64编码进行解码转换为图片格式.主要代码如下:

//将Base64编码转化为字节

Byte[] arr等于convernt.FromBase64String(str);

//将字节保存到内存流

MemoryStream ms 等于 new MemoryStream(arr);

//转化为Bitmap对象

Bitmap bmp 等于 new Bitmap(ms);

//保存图片

bmp.Se(txtFileName+".jpg",ImageFormat.Jpeg);

4.报告自动生成

目前汽车行业检测机构的专家在查看检测报告时,往往要经过很多流程,如向检测人员提出申请,申请通过后通过邮件或者其它方式接受检测结果,这种方式不仅流程繁琐、操作不便,而且检测报告也不便管理.通过报告自动生成技术可有效的解决上述问题,实现检测报告的统一化、一站式的管理.

报告生成的流程如图3所示,首先根据用户选择检测报告生成的方式,按照时间顺序或者用户生成检测报告,然后选择报告编号和报告模板进行数据填充,并对错误信息进行提示.

5.总结

本文设计了基于VSTO的Word数据自动化提取及报告生成的系统,实现了Word 文档的数据自动、准确、规范采集及报告实时生成,实现了检测报告数据统一化、规范化管理.