C# 如何合并、拆分Word文档

2025-11-18 07:35:04

1、(一)以新建一页合并到文档

C#

using Spire.Doc;

namespace MergeWord_Doc

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建两个文档,加载需要合并的文件

            Document doc1 = new Document(@"C:\Users\Administrator\Desktop\TradeNegotiation.docx");

            Document doc2 = new Document(@"C:\Users\Administrator\Desktop\DisputeSettlement.docx");

            //调用InsertTextFromFile()方法,将文档2合并到文档1

            string fileName = @"C:\Users\Administrator\Desktop\DisputeSettlement.docx";

            doc1.InsertTextFromFile(fileName, FileFormat.Docx2013);

            //保存文件

            doc1.SaveToFile("MergedDocument.docx", FileFormat.Docx2013);

        }

    }

}

C# 如何合并、拆分Word文档

2、(二)紧接上文合并到文档

C#

using Spire.Doc;

using Spire.Doc.Documents;

namespace MergeWord2_Doc

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建两个文档,并加载需要合并的两个文件

            Document doc1 = new Document(@"C:\Users\Administrator\Desktop\TradeNegotiation.docx");

            Document doc2 = new Document(@"C:\Users\Administrator\Desktop\DisputeSettlement.docx");

            //获取文档1的最后一个Section

            Section lastSection = doc1.LastSection;

            //遍历文档2中的所有section,复制所有section到文档1

            foreach (Section section in doc2.Sections)

            {

                foreach (Paragraph paragraph in section.Paragraphs)

                {

                    lastSection.Paragraphs.Add(paragraph.Clone() as Paragraph);

                }

            }

            //将合并的文档另存为一个新文档

            doc1.SaveToFile("Merged.docx", FileFormat.Docx2013);

        }

    }

}

C# 如何合并、拆分Word文档

1、(一)按分节符拆分

C#

using Spire.Doc;

using System;

namespace SplitWord_Doc

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建一个Document类对象,并加载需要拆分的文档

            Document document = new Document();

            document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");

            //实例化Document对象

            Document newWord;

            //遍历文档所有section,复制文档每个section并分别保存到新建的文档,同时将拆分的文档保存到指定路径

            for (int i = 0; i < document.Sections.Count; i++)

            {

                newWord = new Document();

                newWord.Sections.Add(document.Sections[i].Clone());

                newWord.SaveToFile(String.Format(@"results\out_{0}.docx", i));

            } 

        }

    }

}

C# 如何合并、拆分Word文档

2、(二)按分页符拆分

C#

using System;

using Spire.Doc;

using Spire.Doc.Documents;

namespace Split_Word_Document_by_Page_Break

{

    class Program

    {

        static void Main(string[] args)

        {

            //实例化一个Document类,加载文档

            Document original = new Document();

            original.LoadFromFile(@"C:\Users\Administrator\Desktop\test.docx");

            //实例化Document类对象,并添加section

            Document newWord = new Document();

            Section section = newWord.AddSection();

            //根据分页来拆分文档

            int index = 0;

            //遍历文档所有section

            foreach (Section sec in original.Sections)

            {

                //遍历文档所有子对象

                foreach (DocumentObject obj in sec.Body.ChildObjects)

                {

                    if (obj is Paragraph)

                    {

                        Paragraph para = obj as Paragraph;

                        //复制并添加原有段落对象到新文档

                        section.Body.ChildObjects.Add(para.Clone());

                        //遍历所有段落子对象

                        foreach (DocumentObject parobj in para.ChildObjects)

                        {

                            if (parobj is Break && (parobj as Break).BreakType == BreakType.PageBreak)

                            {

                                //获取段落分页并移除,保存新文档到文件夹

                                int i = para.ChildObjects.IndexOf(parobj);

                                section.Body.LastParagraph.ChildObjects.RemoveAt(i);

                                newWord.SaveToFile(String.Format("results/out-{0}.docx", index), FileFormat.Docx);

                                index++;

                                //实例化Document类对象,添加section,将原文档段落的子对象复制到新文档

                                newWord = new Document();

                                section = newWord.AddSection();

                                section.Body.ChildObjects.Add(para.Clone());

                                if (section.Paragraphs[0].ChildObjects.Count == 0)

                                {

                                    //移除第一个空白段落

                                    section.Body.ChildObjects.RemoveAt(0);

                                }

                                else

                                {

                                    //删除分页符前的子对象

                                    while (i >= 0)

                                    {                                       

                                        section.Paragraphs[0].ChildObjects.RemoveAt(i);

                                        i--;

                                    }

                                }

                            }

                        }

                    }

                    //若对象为表格,则添加表格对象到新文档

                    if (obj is Table)

                    {

                        section.Body.ChildObjects.Add(obj.Clone());

                    }

                }

            }

            //拆分后的新文档保存至指定文档

            newWord.SaveToFile(String.Format("results/out-{0}.docx", index), FileFormat.Docx);

        }

    }

}

C# 如何合并、拆分Word文档

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢