C# 复制Word(复制全部内容、部分内容、页眉页脚)

2021-04-02 21:28

阅读:728

标签:doc   加载   word文档   size   get   -o   des   部分   test   

本篇示例将介绍C# 复制Word文档的方法。根据不同的需要,我们将复制Word文档分三种情况来讲述,具体包括以下几点:
  • 复制整个Word文档
  • 复制文档中的部分内容
  • 复制页眉或者页脚

    工具使用

  • Free Spire.Doc for .NET 6.3
  • Visual Studio
    PS:在以下示例中需要添加引用类库Spire.Doc.dll。(dll可在安装路径下的Bin文件夹里获取dll)

示例演示

1.复制全部文档内容

源文档:
技术分享图片
需要复制到以下目标文档:
技术分享图片

【C#】

using Spire.Doc;

namespace CopyWord_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建Word文档1,用于加载源文档
            Document sourceDoc = new Document("sample.docx");
            //新建Word文档2,用于加载复制内容的目标文档
            Document destinationDoc = new Document("target.docx");

            //遍历源word文档中的所有section,并把内容复制到目标word文档
            foreach (Section sec in sourceDoc.Sections)
            {
                foreach (DocumentObject obj in sec.Body.ChildObjects)
                {
                    destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
                }
            }

            //保存并打开复制的目标文档
            destinationDoc.SaveToFile("target.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("target.docx");
        }
    }
}

复制结果:
技术分享图片

2. 复制部分内容(带格式复制)

【C#】

using Spire.Doc;
using Spire.Doc.Documents;

namespace CopyPara_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Word文档1,加载源文档
            Document doc1 = new Document();
            doc1.LoadFromFile("sample.docx");

            //创建一个空白文档,作为复制内容的目标文档
            Document doc2 = new Document();

            //获取Word文档1第一节的第一段和第二段
            Section s = doc1.Sections[0];
            Paragraph p1 = s.Paragraphs[0];
            Paragraph p2 = s.Paragraphs[1];

            //在Word文档2中添加Section,并将文档1中的第一、二段的内容复制到文档2中
            Section s2 = doc2.AddSection();
            Paragraph NewPara1 = (Paragraph)p1.Clone();
            s2.Paragraphs.Add(NewPara1);
            Paragraph NewPara2 = (Paragraph)p2.Clone();
            s2.Paragraphs.Add(NewPara2);

            //保存并打开复制后的文档
            doc2.SaveToFile("copy.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("copy.docx");
        }
    }
}

源文档:
技术分享图片
复制结果:
技术分享图片

3.复制页眉或页脚

这里以复制页眉为例
源文档中的页眉效果:
技术分享图片
【C#】

using Spire.Doc;

namespace CopyHeaderAndFooter_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建Word文档1,并加载带页眉的源文档
            Document doc1 = new Document();
            doc1.LoadFromFile("test1.docx");

            //获取文档1的页眉
            HeaderFooter Header = doc1.Sections[0].HeadersFooters.Header;

            //新建文档2,并加载目标文档
            Document doc2 = new Document("test2.docx");

            //遍历文档2中的所有Section
            foreach (Section section in doc2.Sections)
            {
                foreach (DocumentObject obj in Header.ChildObjects)
                {
                    //将复制的页眉对象添加到section
                    section.HeadersFooters.Header.ChildObjects.Add(obj.Clone());
                }
            }

            //保存并打开文档
            doc2.SaveToFile("copyHeader.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("copyHeader.docx");
        }
    }
}

复制结果:
技术分享图片
同样复制页脚也是可以的。

以上为本次示例介绍的全部内容。
如需转载,请注明出处。

C# 复制Word(复制全部内容、部分内容、页眉页脚)

标签:doc   加载   word文档   size   get   -o   des   部分   test   

原文地址:http://blog.51cto.com/eiceblue/2131634


评论


亲,登录后才可以留言!