基于C#的Word文档自动导出模块的设计与实现

时间:2024-04-15 点赞:52534 浏览:108939 作者原创标记本站原创

本文是一篇自动化论文范文,关于自动化毕业论文题目,关于基于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的形式保存.这样就完成了模板的创建.

3.2C#程序通过模板自动创建word文档

第一步,制作模板

1)新建一个文档

2)在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮.

3),保存模板,命名为“试卷.dot”和“答案.dot”.

第二步,设置项目中的引用

1)右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”打开“添加引用”对话框.

2)在“添加引用”对话框中,选择“COM”>“MicrosoftWord11.0ObjectLibrary”,点击“确定”按钮.

3)相同操作打开“添加引用”对话框,选择“浏览”项,查找到“Microsoft.Office.Interop.Word.dll”文件,选中它,点击“确定”按钮.

第三步,编码

这一步分为两个部分:

第一部分,Report编码.

第二部分,具体生成文档的编码.

1)根据模板新建文档

privateDocumentNewDoc(stringDotStr){

DocumentDoc;

objectobjTemplate等于(object)DotStr;

objectobjMissing等于Missing.Value;

Doc等于_App.Documents.Add(

refobjTemplate,

refobjMissing,

refobjMissing,

refobjMissing

);

returnDoc;

}

2)定位到书签

插入书签后,就可以通过操作插入点使光标从文档的其他位置跳转到书签标记的位置,这里将用到Selection对象的GoTo方法,代码如下:

privatevoidGotoBookmark(DocumentDoc,stringNameStr)

{

objectobjWhat等于WdGoToItem.wdGoToBookmark;;

objectobjWhich等于WdGoToDirection.wdGoToPrevious;

objectobjMissing等于Missing.Value;

objectobjName等于(object)NameStr;

Doc.Bookmarks.get_Item(refobjName);

}

3)在书签处插入值,可以分三种情况:插入单个值,插入多个值,插入文件.代码分别如下:

在书签处插入单个值:

publicvoidInsertBookmarkValue(DocumentDoc,stringNameStr,stringValueStr,stringMsgStr)

{

Rangerng;

objectobjName等于(object)NameStr;

if(Doc.Bookmarks.Exists(NameStr))

{

rng等于Doc.Bookmarks.get_Item(refobjName).Range;;

rng.Text等于ValueStr;

}

else

{

_Errors.Add("无法写入:"+MsgStr);

}

}

在书签处插入多个值:

publicvoidInsertBookmarkValue(DocumentDoc,stringNameStr,ArrayListValueArr,stringMsgStr)

{

Rangerng;

objectobjName等于(object)NameStr;

if(Doc.Bookmarks.Exists(NameStr))

{

foreach(stringsinValueArr)

{

rng等于Doc.Bookmarks.get_Item(refobjName).Range;;

rng.Text等于s;

}}

else

{

_Errors.Add("无法写入:"+MsgStr);

}}

在书签处插入文件:

publicvoidInsertBookmarkFile(DocumentDoc,stringNameStr,stringFileNameStr,stringMsgStr)

{

Rangerng;

objectobjName等于(object)NameStr;

objectobjMissing等于Missing.Value;

if(Doc.Bookmarks.Exists(NameStr))

{

rng等于Doc.Bookmarks.get_Item(refobjName).Range;;

rng.InsertFile(

FileNameStr,

refobjMissing,

refobjMissing,

refobjMissing,

refobjMissing

);

}else

{

_Errors.Add("无法写入:"+MsgStr);

}}

4)关闭文件

finally

{

_App.Quit(

refobjMissing,//SeChanges

refobjMissing,//OriginalFormat

refobjMissing//RoutDocument

);

_App等于null;

}

第四步,运行程序生成文档,并查看生成的文档.

4小结

随着计算机技术的普及和发展,将上述Word文档自动导出模块应用于试题库随机组卷抽卷系统,实现Word文档格式的规范化,效果较理想.并按一定的原则规划和建设试题库,使用计算机软件系统管理试题库,保证了考试这一主要教学评价手段的科学性、规范性、可靠性和有效性,为提高教学质量,改进教学活动提供了有力支持.

相关论文

如何在word文档中自动生成公式编号

该文为关于公式类本科毕业论文范文,与如何在word文档中自动生成公式编号相关毕业论文格式范文,可作为论文格式专业公式论文写作研究的大学。

C#动态生成WORD文档实现报表打印

本文是一篇信息管理系统论文范文,信息管理系统方面专科毕业论文开题报告,关于C 动态生成WORD文档实现报表打印相关在职毕业论文范文。适合信。

基于OfficePIA自动生成Word文档

本文是一篇自动化论文范文,自动化方面有关毕业论文题目,关于基于OfficePIA自动生成Word文档相关毕业论文格式模板范文。适合自动化及段落及。

word文档添加页眉、页脚的详细步骤

这篇页眉论文范文属于论文格式免费优秀学术论文范文,页眉类有关在职毕业论文开题报告,与word文档添加页眉、页脚的详细步骤相关学术论文格式。

如何在word文档中生成目录事项

关于目录及事项及标题方面的免费优秀学术论文范文,目录相关职称论文发表在哪,关于如何在word文档中生成目录事项相关论文范文数据库,对写。

word文档添加页眉、页脚的详细步骤

关于页眉及步骤及选项方面的免费优秀学术论文范文,关于页眉方面职称论文检索,关于word文档添加页眉、页脚的详细步骤相关论文范例,对写作。

如何在Word文档中上标

此文是一篇字体论文范文,关于字体类论文范文参考文献,与如何在Word文档中上标相关专升本毕业论文开题报告。适合不知如何写字体及方法及一下。

如何在Word文档中上标

本文是一篇字体论文范文,字体方面有关毕业论文格式范文,关于如何在Word文档中上标相关在职研究生毕业论文范文。适合字体及方法及一下吧方面。

如何在word文档中生成目录事项

本论文是一篇关于目录大学毕业论文中期报告,关于如何在word文档中生成目录事项相关毕业论文提纲范文。免费优秀的关于目录及事项及标题方面。