本论文是一篇关于自动化论文发表,关于基于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对象随文档一起保存,因此当代码停止运行或文档关闭时,它不会被删除.
该文来源 http://www.sxsky.net/benkelunwen/060172841.html
3实现
在试题库随机组卷抽卷系统中所设计的试题本来有一定的格式,按.rtf格式保存为文件.在此基础上,在Word相应的位置插人书签(Bookmark),书签的作用是将程序中想要输出变量的值带入到模板中,模板中的书签名字一定要与程序中的一致.
3.1模板
设计模板是为了避免反复输入相同的信息或做重复的格式修改.创建自定义模板的方法如下:新建一个空白的Word文档,在文档中添加相关信息,设置好要求的格式,将这些作为模板的静态文本.对于需要动态改变的部分,则在相应的位置插入书签,并设置书签变量.然后将所做的Word文档以.dot的形式保存.这样就完成了模板的创建.
3.2C#程序通过模板自动创建word文档
第一步,制作模板
1)新建一个文档
2)在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮.
3),保存模板,命名为“试卷.dot”和“答案.dot”.
第二步,设置项目中的引用
1)右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”打开“添加引用”对话框.
有关论文范文主题研究: | 关于自动化的论文范例 | 大学生适用: | 学院论文、大学毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 66 | 写作解决问题: | 写作参考 |
毕业论文开题报告: | 文献综述、论文摘要 | 职称论文适用: | 期刊目录、高级职称 |
所属大学生专业类别: | 写作参考 | 论文题目推荐度: | 优秀选题 |
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)
{