c#&word文档:1.创建空白Word文档及保存/2.添加页内容...

发布于:2024-05-06 ⋅ 阅读:(28) ⋅ 点赞:(0)
---创建空白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的控制台应用程序: