基于C#的Word 文档自动导出模块的设计与实现
摘要:该文运用书签技术,在Microsoft.NET开发平台上利用C#语言实现Word文档的自动导出模块的设计。在试题库随机组卷抽卷系统中使用该模块,达到了比较满意的效果。
关键词:C#;Word文档;自动导出模块;书签
中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)33-7449-04
1概述
试题库随机组卷抽卷系统的核心功能就是自动生成试卷和答案,通过Word对象模型编程可以比较完善地实现不同要求的试卷格式的输出,采用灵活的组卷技术,可以大大减轻人工出卷的工作量。实现Word文档操作的程序设计语言有很多,文献[1]主要采用Delphi来实现。文献[2-4]是用VC++来实现的。文献[5-6]是用VBA来实现的,该文运用Word书签技术,使用C#语言实现Word文档的自动导出模块,探讨该模块设计与实现中的关键技术及其在试题库随机组卷抽卷系统应用。
2Word自动化对象
2.1Word对象模型
Word提供了庞大而复杂的对象模型。如图1所示。
Word对象模型中似乎有许多重叠。例如,Document和Selection对象都是Application对象的成员,但是Document对象还是Selection对象的成员。Document和Selection对象都包含Bookmark和Range对象。存在重叠是因为您可以通过多种方式来访问相同类型的对象。
2.2五种对象
Word对象模型的对象主要有五种类型,它们分别是Application对象,Document对象、Selection对象、Range对象和Bookmark对象。
1)Application对象
Application对象表示Word应用程序,是其他所有对象的父级。它的所有成员通常作为一个整体应用于Word。可以使用该对象的属性和方法来控制Word环境。
2)Document对象
Document对象是Word编程的中枢。当打开文档或创建新文档时,就创建了新的Document对象,该对象被添加到Word的Documents集合中。焦点所在的文档叫做活动文档,由Application对象的ActiveDocument属性表示。
3)Selection对象
Selection对象表示当前选择的区域。在Word用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示文本,然后应用格式设置。Selection对象始终存在于文档中。如果未选中任何对象,它表示插入点。此外,它也可以是不连续的多个文本块。
4)Range对象
Range对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。Range对象的数量并不局限于一个。您可以在同一文档中定义多个Range对象。
5)Bookmark对象
文档中的Bookmark是控制文档中的文本的最容易的方法,在这一点上它类似于Windows窗体上的文本框控件。Bookmark对象表示文档中同时具有起始位置和结束位置的连续区域。书签用于在文档中标记一个位置,或用作文档中的文本容器。Bookmark对象可以小到只有一个插入点,也可以大到整篇文档。Bookmark与Range对象的不同之处在于它可以在设计时命名书签,并且Bookmark对象随文档一起保存,因此当代码停止运行或文档关闭时,它不会被删除。
3实现
在试题库随机组卷抽卷系统中所设计的试题本来有一定的格式,按.rtf格式保存为文件。在此基础上,在Word相应的位置插人书签(Bookmark),书签的作用是将程序中想要输出变量的值带入到模板中,模板中的书签名字一定要与程序中的一致。
3.1模板
设计模板是为了避免反复输入相同的信息或做重复的格式修改。创建自定义模板的方法如下:新建一个空白的Word文档,在文档中添加相关信息,设置好要求的格式,将这些作为模板的静态文本。对于需要动态改变的部分,则在相应的位置插入书签,并设置书签变量。然后将所做的Word文档以.dot的形式保存。这样就完成了模板的创建。
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:18796993035