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模板增加相应控件,如时间控件、图片控件以及数据校验按钮。
(4)对特定要求的数据需要进行校验,采用Office内置的VBA编程技术对数据的有效性进行校验,校验的流程如图2所示。
3.2 数据自动化提取程序设计
数据自动化提取程序是对设计模板上固定位置上的数据进行提取,是对Word程序功能的定制,在Word原有菜单栏项增加数据提取菜单栏,这里用到VSTO的外接程序的开发。为了降低程序的耦合性,提高代码的重用性,程序在开发过程中采用了基于MVC三层架构设计,包括模型层、视图层、逻辑控制层,其中模型层是对Word底层模型进行重新组合与设计。逻辑控制层主要是对数据提取的逻辑模块功能进行划分,包括用户管理模块、数据提取模块、数据上传模块。表示层主要是界面展示。
对于文字格式的信息可以直接根据位置进行提取,而对于图片格式的数据,需要进行转换,因为在Word中图片采用的是Base64的编码格式,要想对Word中的图片数据进行提取,首先要查找定位图片对应的Base64编码,然后将Base64编码进行解码转换为图片格式。主要代码如下:
//将Base64编码转化为字节
Byte[] arr=se64String(str);
//将字节保存到内存流
MemoryStream ms = new MemoryStream(arr);
//转化为Bitmap对象
Bitmap bmp = new Bitmap(ms);
//保存图片
(txtFileName+".jpg",);
4 报告自动生成
目前汽车行业检测机构的专家在查看检测报告时,往往要经过很多流程,如向检测人员提出申请,申请通过后通过邮件或者其它方式接受检测结果,这种方式不仅流程繁琐、操作不便,而且检测报告也不便管理。通过报告自动生成技术可有效的解决上述问题,实现检测报告的统一化、一站式的管理。
报告生成的流程如图3所示,首先根据用户选择检测报告生成的方式,按照时间顺序或者用户生成检测报告,然后选择报告编号和报告模板进行数据填充,并对错误信息进行提示。
5 总结
本文设计了基于VSTO的Word数据自动化提取及报告生成的系统,实现了Word 文档的数据自动、准确、规范采集及报告实时生成,实现了检测报告数据统一化、规范化管理。
参考文献:
.计算机工程与应用,2008,44(9):104-106.
.计算机软件与应用,2007,4(3):180-183.
.电脑开发与应用,2011,05.
.惠州学院学报,2009,6(29).
.地矿测绘,2006,22(1):32-33.
作者简介:惠怡静(1975-),女,天津人,副主任,工程师,学士学位,研究方向:汽车行业信息平台建设、汽车行业政策研究;邵学彬(1986-),男,山东菏泽人,职员,工程师,硕士,研究方向:数据挖掘、软件开发技术、汽车行业数据服务平台开发与建设;程旭(1978-),男,天津人,项目经理,工程师,硕士,主要研究领域:数据挖掘、企业信息化等。
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。