admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:店招在线制作免费)

龙源期刊网

基于VSTO的Word数据自动化提取及报

告生成系统的设计与开发

作者:惠怡静 邵学彬 程旭

来源:《计算机光盘软件与应用》2013年第19期

摘 要:随着汽车检测技术的发展,越来越多的汽车检测报告随之生成,但是这些检测报

告中的数据不易提取,无法对检测数据的二次加工和分析。鉴于此,本文提出了一种基于

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模板增加相应控件,如时间控件、图片控件以及数据校验按钮。

(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 文档的

数据自动、准确、规范采集及报告实时生成,实现了检测报告数据统一化、规范化管理。

龙源期刊网

参考文献:

[1]叶明,张铮.基于的Word报告生成功能开发[J].计算机工程与应用,2008,44

(9):104-106.

[2]鲁保玉,杨新芳.用Delphi生成Word报告及动态结构表格[J].计算机软件与应用,

2007,4(3):180-183.

[3]王二暖.基于C#的Word2010文档自动生成系统[J].电脑开发与应用,2011,05.

[4]罗许练.基于C#.NET的动态Word文档生成及数据填充研究[J].惠州学院学报,2009,6

(29).

[5]闫新珠,王秀芹.在VC中利用Word生成测量报告[J].地矿测绘,2006,22(1):32-33.

作者简介:惠怡静(1975-),女,天津人,副主任,工程师,学士学位,研究方向:汽

车行业信息平台建设、汽车行业政策研究;邵学彬(1986-),男,山东菏泽人,职员,工程

师,硕士,研究方向:数据挖掘、软件开发技术、汽车行业数据服务平台开发与建设;程旭

(1978-),男,天津人,项目经理,工程师,硕士,主要研究领域:数据挖掘、企业信息化

等。

作者单位:中国汽车技术研究中心 数据资源中心,北京 100176

基金项目:中国汽车技术研究中心科研项目(12130109)。

龙源期刊网

龙源期刊网


本文标签: 数据 报告 进行 检测 提取