---创建空白Word文档 ---
(1)创建一个名为OfficeOperator的类库项目。引用操作Word的.NET类库
(2)定义用于操作Word的类WordOperator1。添加引用Microsoft.Office.Interop.Word命名空间。
(3)为WordOperator声明两个操作Word文档的私有对象,在WordOperator的构造函数中创建WordApp, 定义用于创建Word文档的函数CreateWord.代码如下:
using Microsoft.Office.Interop.Word;// 引入Microsoft.Office.Interop.Word命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace OfficeOperator1
{public class WordOperator1{//为WordOperator1声明两个操作Word文档的私有对象Application WordApp; //Word应用对象Document WordDoc; //Word文档对象public WordOperator1() //在WordOperator1的构造函数中创建WordApp{WordApp = new Application(); //创建Word应用对象WordApp.Visible = true; //创建完成后是否显示Word文档}//定义用于创建Word文档的函数CreateWord,代码如下:public void CreateWord(){WordDoc = WordApp.Documents.Add(); //创建Word文档对象WordDoc.PageSetup.Orientation = WdOrientation.wdOrientPortrait; //横板还是竖板WordDoc.PageSetup.LeftMargin = WordApp.CentimetersToPoints(0.5f); //左边距WordDoc.PageSetup.RightMargin = WordApp.CentimetersToPoints(0.5f); //右边距WordDoc.PageSetup.TopMargin = WordApp.CentimetersToPoints(0.5f); //上边距WordDoc.PageSetup.BottomMargin = WordApp.CentimetersToPoints(0.5f); //下边距WordDoc.PageSetup.PageWidth = 400; //页宽,单位:像素WordDoc.PageSetup.PageHeight = 600; //页高,单位:像素}}
}
(4)创建一个名为CreateWord的控制台应用程序,为其添加对OfficeOperator1项目的引用。实例化WordOperator1对象,创建Word文档。
启动CreateWord的控制台应用程序:创建了一个空白word文档
-------保存Word文档-------
(1)在WordOperator类中定义用于保存Word文档的函数SaveWord
(2)在WordOperator类中定义关闭Word应用程序的函数QuitWord
using Microsoft.Office.Interop.Word;// 引入Microsoft.Office.Interop.Word命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace OfficeOperator1
{public class WordOperator1{//为WordOperator1声明两个操作Word文档的私有对象Application WordApp; //Word应用对象Document WordDoc; //Word文档对象public WordOperator1() //在WordOperator1的构造函数中创建WordApp{WordApp = new Application(); //创建Word应用对象WordApp.Visible = true; //创建完成后是否显示Word文档}//定义用于创建Word文档的函数CreateWord,代码如下:public void CreateWord(){WordDoc = WordApp.Documents.Add(); //创建Word文档对象WordDoc.PageSetup.Orientation = WdOrientation.wdOrientPortrait; //横板还是竖板WordDoc.PageSetup.LeftMargin = WordApp.CentimetersToPoints(0.5f); //左边距WordDoc.PageSetup.RightMargin = WordApp.CentimetersToPoints(0.5f); //右边距WordDoc.PageSetup.TopMargin = WordApp.CentimetersToPoints(0.5f); //上边距WordDoc.PageSetup.BottomMargin = WordApp.CentimetersToPoints(0.5f); //下边距WordDoc.PageSetup.PageWidth = 400; //页宽,单位:像素WordDoc.PageSetup.PageHeight = 600; //页高,单位:像素}public void SaveWord(string fileName){object FileName = fileName; //文档名称object FileFormat = WdSaveFormat.wdFormatDocument; //Word文档保存格式object LockComments = false; //是否锁定批注object Password = ""; //打开Word文档密码object WritePassword = ""; //修改Word文档密码object AddToRecentFiles = true; //是否将文档添加到近期使用的文件菜单中WordDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments, ref Password, ref AddToRecentFiles, ref WritePassword); //保存Word文档}public void QuitWord(){((_Document)WordDoc).Close(); //关闭Word文档((_Application)WordApp).Quit(); //退出Word应用}//退出Word应用程序}}
(3)将Word文档保存到当前目录,命名为“测试文档.doc”,然后退出Word应用程序。在CreateWord项目的main函数中添加代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOperator1;namespace CreateWord1
{internal class Program{static void Main(string[] args){WordOperator1 word = new WordOperator1();word.CreateWord(); //创建Word文档word.SaveWord(Directory.GetCurrentDirectory() + "\\测试文档11.doc");//保存Word文档word.QuitWord();}}
}
本实例代码主要实现了将创建好的Word文档保存到当前目录下。首先在WordOperator中定义了用于保存Word文档的方法SaveWord,通过调用WordDoc的SaveAs方法将Word文档保存到指定的路径,该方法中的参数较多,其中第一个参数FileName为文档的路径,第二个参数FileFormat为文件的格式,第三个参数LockComments表示是否锁定批注,第四个参数Password表示打开该文档所需的密码,第五个参数AddToRecentFiles表示是否将该文档添加到近期使用的文件菜单中,第六个参数WritePassword为修改该文档所需的密码,后面的参数就不作详细的介绍了。
保存好Word文档后,通过调用WordDoc的Close方法关闭该文档,最后通过WordApp的Quit方法退出对Word文档的操作。
在CreateWord项目的main函数中调用WordOperator对象的SaveWord方法来将创建的文档保存到当前目录下,然后调用QuitWord方法退出对Word文档的操作。
启动CreateWord1的控制台应用程序:
解决方案总框架:
------添加页眉和页脚------
【实现过程】
(1)在OfficeOperator项目的WordOperator类中定义为Word文档设置页眉的函数SetPageHeader,代码如下:
public void SetPageHeader(string Text)
{
WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; //设置视图类型
WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;//选定页眉
WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(Text);//向页眉中添加文字
WordApp.Selection.ParagraphFormat.Alignment = //设置居中对齐
WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//选定主文档
}
(2)在WordOperator类中定义为Word文档设置页脚的函数SetPageFooter,代码如下:
public void SetPageFooter(string Text)
{
WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; //设置视图类型
WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryFooter;//选定页脚
WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(Text); //向页脚中添加文字
WordApp.Selection.ParagraphFormat.Alignment = //设置居中对齐
WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; //选定主文档
}
(3)在CreateWord项目的main函数中添加代码如下:
word.SetPageHeader("C#经典实例"); //添加页眉
word.SetPageFooter("第17章 访问office"); //添加页脚
启动CreateWord1的控制台应用程序:
.......\CreateWord1\bin\Debug 路径下打开文档,已添加页眉和页脚
------添加页码------
【实现过程】
(1)在OfficeOperator项目的WordOperator类中定义为Word文档添加页码的函数InsertPageNumber,代码如下:
public void InsertPageNumber(bool isFirstPage)
{
object Alignment = WdPageNumberAlignment.wdAlignPageNumberRight;//页码对齐方式
object IsFirstPage = isFirstPage; //是否从首页开始
//对所有的页眉和页脚设置页码
WdHeaderFooterIndex WdFooterIndex = WdHeaderFooterIndex.wdHeaderFooterPrimary;
WordApp.Selection.Sections[1].Footers[WdFooterIndex].PageNumbers.Add
(ref Alignment, ref IsFirstPage);
}
(2)在CreateWord项目的main函数中添加代码如下:
word.InsertPageNumber(true); //添加页码
----文档中添加文字----
(1)在OfficeOperator项目的WordOperator类中定义为Word文档添加文字的函数InsertText,在Word文档中换行的函数NewLine
(2)在CreateWord项目的main函数中添加代码如下
启动CreateWord1的控制台应用程序:
---文档中插入图片---
(1)在OfficeOperator项目的WordOperator类中定义向Word文档中插入图片的函数InsertPicture,代码如下:
public void InsertPicture(string FileName, int Width, int Height)
{
object LinkToFile = false; //是否连接到文件
object SaveWithDocument = true; //是否保存到文档中
object Range = System.Reflection.Missing.Value;
WordApp.Selection.ParagraphFormat.Alignment = //设置段落对齐方式
WdParagraphAlignment.wdAlignParagraphCenter;
InlineShape inlineShape = WordDoc.Application.Selection.InlineShapes.
AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Range); //添加图片
if (Width != 0 || Height != 0)
{
inlineShape.Width = Width; //设置图像宽度
inlineShape.Height = Height; //设置图像高度
}
}
(2)在CreateWord项目的main函数中添加代码如下:
word.InsertPicture(Directory.GetCurrentDirectory() + "\\189.png", 100, 75);
//添加图片
准备图片:
启动CreateWord1的控制台应用程序: