基于C#的Word文档生成与格式固定功能的实现

2016-01-01 03:04袁金堂
无线互联科技 2016年10期

袁金堂

(新疆生产建设兵团兴新职业技术学院,新疆 乌鲁木齐 830074)



基于C#的Word文档生成与格式固定功能的实现

袁金堂

(新疆生产建设兵团兴新职业技术学院,新疆 乌鲁木齐 830074)

摘 要:文章主要介绍了基于C#设计的窗口应用程序教学大纲格式生成器在开发过程中所应用到的关键知识点,通过程序功能的实现,讨论使用C#操作Microsoft Word有效方法,以及具体函数的功能说明和使用时的注意事项。

关键词:Word;C#;Word操作;Word格式

Word是当前使用范围最广的文字处理系统,在工作、学习过程中使用的很多文档都是由Word编写排版的。Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word 功能的扩展[1-2]。

Word本身就具备强大的编程功能,同时也提供了丰富的编程接口,这就使得人们可以通过各种编程工具对Word进行控制。在C#.NET中可以将Word的类库导入到程序中,使用COM技术编程,便可以在源码中方便地使用各种函数、参数对Word进行操作。C#.net将会自动将库文件转化为DLL 组件,这样只要在源码中创建该组件对象即可达到操作Word的目的[3]。

本文将教学大纲格式固定为载体,通过Word文档操作功能的实现来研究C#操作Word的方法。每门教学课程都需要有教学大纲,每门课程教学大纲的组成部分都大致相同,如都包括“课程名称”、“课时”、“适用对象”等等内容。总体来说每个学校都有自己的格式要求,但是这些格式要求都只是文字说明,并不能保证所有老师对格式的设置都能满足格式要求,甚至学校的格式说明有时也并不是很严谨。每学期开学时对教学大纲的检查,其中有70%的问题都出在格式的设置上,内容的填写都没问题,每个老师在教学大纲的设置上要花很多时间,把大部分时间花在格式的设置上是很不值得的。教学大纲生成器可解决这一问题,可保证使用软件生成的教学大纲格式都相同,只需填相应的内容即可,无需将时间浪费在格式设置上。

1 程序结构

主程序采用单窗口多个选项卡设计,打开程序进入主界面后通过切换选项卡后可以看到教学大纲中所需填写的各项内容。本软件设计可以有两种方式来固定教学大纲格式,第一种可以通过打开文档按钮读取需要设置格式的教学大纲Word文件,软件会将每一项内容识别出来,再单击生成文档按钮可以生成符合格式要求的教学大纲Word文档。第二种方法是将每项内容复制或填写到软件中,全部完成后再单击生成文档按钮也可生成符合格式要求的教学大纲Word文档。每个学校对教学大纲格式、内容上的要求会有部分差异存在,本软件是以兵团兴新职业技术学院的教学大纲格式要求为基准。

2 程序实现

在程序代码的实现过程中主要包含3个操作,第一个是打开Word文档操作在程序中创建一个文档对象;第二个文档的响应操作,如插入、格式设置等;第三个是生成文档的操作。

2.1 打开Word文档

打开Word文档对象是对Word操作的前提,程序在如果要操作一份Word文档,则必须现在内存中创建一个Word对象。

using quoteWord=Microsoft.Office.Interop.Word;//在项目中添加Word库文件引用

using Microsoft.Office.Interop.Word;

quoteWord._Application wordProcess;//声明Word应用程序变量并初始化

wordProcess=new quoteWord.ApplicationClass();quoteWord._Document wordFile;//声明Word文档变量wordFile=wordProcess.Documents.Open(ref@ fileName,ref defaultNULL,ref readOnly,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref Visible,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL);//打开一个地址是fileName的文档。

2.2 Word文档设置操作

wordFile.Paragraphs.Format.LineSpacing=24f;//设置行距24磅

wordFile.PageSetup.PaperSize=quoteWord. WdPaperSize.wdPaperA4;//设置纸张为A4

wordFile.PageSetup.TopMargin=wordProcess. CentimetersToPoints(2.54f);//上页边距设置

wordFile.PageSetup.BottomMargin=wordProcess. CentimetersToPoints(2.54f);

wordFile.PageSetup.RightMargin=wordProcess. CentimetersToPoints(3.17f);

wordFile.PageSetup.LeftMargin=wordProcess. CentimetersToPoints(3.17f);

wordContent="《" + textBox1.Text.Trim()+"》课程教学大纲 ";//标题的内容及格式设置

wordFile.Paragraphs.Last.Range.Font.Name="黑体";//设置段落字体为“黑体”

wordFile.Paragraphs.Last.Range.Font.Size=15;//字号为15号

word File.Paragraphs.Last.Range.Text= wordContent;//要写入的语句

wordProcess.Selection.ParagraphFormat. Alignment=quoteWord.WdParagraphAlignment. wdAlignParagraphCenter;//行居中

wordFile.Paragraphs.Last.Format.LineSpacing= 18f;//设置当前开始的行间距为18磅

2.3 生成文档操作

Word文档保存

w o r d Ty p e = q u o t e W o r d .W d S a v e F o r m a t . wdFormatDocumentDefault;//将文档对象的内容保存为后缀名为DOCX的文档,即Word 2007以后版本

w o r d Ty p e = q u o t e W o r d .W d S a v e F o r m a t . wdFormatDocument;//文档对象的内容保存为后缀名为DOC的文档,即Word 2003之前版本

wordFile.SaveAs(ref path,ref wordType,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL,ref defaultNULL);//生成文档操作

wordFile.Close(ref defaultNULL,ref defaultNULL,ref defaultNULL);//关闭对象并释放资源

word Process.Quit(ref defaultNULL,ref defaultNULL,ref defaultNULL);

3 结语

通过应用程序对一些固定格式文档的设置可以提高工作效率,减少失误,起到提高文档格式要求的标准。Word自身本就提供丰富的编程接口,利用程序可以使用接口可以开发出各种符合实际需求的Word文档。本文所提供的方法不同于简单的模板技术,而是通过程序内部控制Word文档,程序自动完成复杂的Word各种操作,只需提供内容即可直接生成最终结果。这中技术可以作为一个通用的模块使用在各种需要生成Word文档的应用程序中。

[参考文献]

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

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

[3]孔令彦,董蓬勃,姜青香,等.使用Visual Basic操纵Microsoft Word对象生成报告文档[J].计算机工程与应用,2003(39):115- 117.

[4]黄伟.基于C#的Word文档自动生成技术的研究与应用[J].南通职业大学学报,2008(2):70-75.

Implementation of Word Document Generation and Format Fixed Function Based on C#

Yuan Jintang
(The Xinjiang Production and Construction Corps and New Vocational and Technical College,Urumqi 830074,China)

Abstract:In this paper,based on C# design of windows application program teaching outline format generator in the development process is applied to the key point of knowledge,through the program function realization,it is discussed using an effective method for C# operation of Microsoft Word,and specific function description and make the matters needing attention.

Key words:Microsoft Word;C#;Word operation;Word format

作者简介:袁金堂(1983-),男,江苏赣榆,本科,助理讲师;研究方向:计算机网络,软件开发。