利用C#访问WORD对象智能生成投标文档

时间:2022-05-02 03:50:28

利用C#访问WORD对象智能生成投标文档

摘要:智能化生成投标书文档是投标文件管理和生成系统中的重要组成部分。本文采用VSTO对Word编程技术,将投标所需的文字段落和表格部分分别插入到Word文档中,提出利用Word光标跟随定位的方法来控制文档的起始位置,在相应的位置上插入对应的内容,利用Range接口的Text属性设置段落文字的格式。

关键词:标书文档;VSTO编程;标书生成

中图分类号:TP3 文献标识码:A文章编号:1007-9599 (2011) 05-0000-01

Access WORD Object Smart Generation Tender Documents with C#

Duan Dongsheng1,Zhang Ruixin2,Wang Pengpeng2,Wang Ming2,Zhu Wei2

(1.China Railway ShiSiJu Group Corporation,Jinan250014,China;

2.China University of Mining and Technology (Beijing)College of Resources and Safety Engineering,Beijing100083,China)

Abstract:Generation of intelligent document is tender document management and generate an important part of the system.In this paper,VSTO for Word programming technology,the tender part of the text paragraphs and tables are inserted into the Word document,proposed to follow the cursor positioning using Word to control the start of the document,insert the corresponding position in the corresponding content,Text property set paragraph text format using Range interface.

Keywords:Tender documents;VSTO programming;Tender generation

建筑企业为克服投标文件编制多凭借的经验完成,效率低、质量差和人为因素的影响,本文提出了利用C#语言对Office Word的二次编程,实现自动、智能的生成投标文件,为用户提供一个智能化的平台,提高投标文件生成效率和质量。

Microsoft Word文档是投标文件编制和大多业主要求的文档格式,Word提供的强大的编程接口技术使得格式文档自动生成成为可能。使用C#.NET控制Word主要有两种方法:一种是使用VSTO对Word编程技术,另一种是通过COM的互操作技术 [1,2]。

所谓COM的互操作技术,在.NET Framework中提供了对COM互操作的支持,简称“COM的互操作”,该支持包含两个方面,即.NET Framework的代码能调用COM组件,而COM组件也能够调用.NET Framework的代码。

一、程序结构

本文要研究生成商务投标书(下文简称“商务标书”),商务标书一般均由文字、表格、段落、图片、分页符等要素组成,将上述要素属性设置,如字符大小,字体,颜色,粗体,斜体,下划线等,再加以组合便成为商务标书。基于模板的标书生成不受格式的限制。

标书文档的生成过程是,用户招标文件选择合适的模板,再选择基础资源数据填充模板,通过程序跟踪器控制需要插入的文字和图表等,调用WORD对象集,生成投标书文件。在文档生成的过程中,主程序先打开一份的空白文档,根据制作标书平台上的内容调用生成文档方法集中的对应方法将图表和文字插入到标书文档中,然后按用户的要求保存文档。具体结构方式见图1所示。

图1 程序实现的结构图

选择模板库:用户按照工程项目的类别和资格审查的方式把库中的模板分类,以备选择。

基础资源库:基础资源是组成商务标书的要素,根据实际情况从该库中选择数据填充模板。

程序跟踪器:该方法集合主要跟踪并记录向WORD文档中插入的类型和结果(主要是文字和表格)以及进程,以构成插入报告的备选内容。

WORD对象集:即对Word编程所对应的VSTO(Visual Studio Tools for Office)编程模型,包括嵌入对象和宏处理。生成文档时可以调用其中的接口来实现对Word文档的基本操作[2]。

生成文档方法类:该部分是文档生成功能的核心部分,集合了生成文档所需要方法的类,封装了对Word文档的主要操作的一些方法。主要方法包括插入段落及其格式的设定,插入表格及其样式的设置,为段落和表格中插入文字以及设置它的格式、文档光标的定位等。该方法类在系统生成后会编译成DLL文件,在商务标书生成过程中以动态调用。

制作标书平台:是程序操作界面,用户可在界面上选择模板,调用基础资源数据填充模板生成商务标书。

标书文档:首先由系统自动生成一个空白文档,然后依次插入标书的文字和图表等,最后按用户的要求选择文档保存格式。

二、文档生成的实现

该子系统使用了C#对WORD的二次编程,通过VSTO编程技术中的各种方法向WORD中插入文字、图片以及表格等组成标书文档。

以纯文字和表格两种文档为代表研讨如何生成投标书文档,其他章节的情况非常相似。

(一)纯文字文档的生成。纯文字文档只需要向文档中插入文字和控制符。插入文字的方法是:首先向文档中插入一个段落,然后设定段落的文字和段落的样式,然后在设定文字的属性。

(二)表格文档的生成。一般表格文档除了表格以外,还有一个标题。在表格单元格内,又是一个小的段落。所以,生成一个表格要比生成段落复杂一些。该表格本身就比较复杂,列宽度不一,列数量不一,表格不同部分变化较大时,可分几部分依次生成,基本编程思想是:利用定义几行几列的新表格,并增添到文档的表格集中。对于列宽不统一的,可用合并单元格实现。

接下来再向每个单元格中添加文字,添加方法与上一小节中的方法一样,唯一的差别是:上节添加文字的对象是段落,而这节添加文字的对象是单元格。添加文字完成后,选择整个表格,设置表格中文字的对齐方式。最后,在将光标移至表格末尾,为添加下一部分做准备。

三、结束语

本文讨论借助于Word提供的强大的编程接口技术和VSTO对Word的编程技术,提出了方法不同于普遍采用的Word模板的技术,而是一种借助于C#工具,通过跟踪和控制Word文档中光标位置来控制文档的起始位置和其格式的方法,该方法的优点是在实现文档生成上,灵活方便,为商务标书编制提供了一种新的方法和思路。

参考文献:

[1]叶明,张诤.基于C#.NET的Word报告生成功能开发[J].计算机工程与应用,2008,44(9):104-106

[2]李继攀,黄国平等.程序天下Visual C# 2008开发技术实例详解[M].北京:电子工业出版社,2008

[作者简介]

段东生(1972-),男,山东莘县人,博士生,主要研究方向为工程管理。

上一篇:Google Maps API二次开发 下一篇:基于B/S结构的客户管理系统设计与研究