C#如何合并、拆分Word文档-创新互联

概述

出于方便文档管理、存储、传输等目的,我们常会想要将某些文档拆分为多个子文档,或者将多个文档合并为一个文档。在本文中,将介绍对Word文档进行拆分、合并的方法。下面的示例中将包含以下要点:

成都创新互联致力于互联网网站建设与网站营销,提供成都做网站、成都网站设计、网站开发、seo优化、网站排名、互联网营销、小程序设计、公众号商城、等建站开发,成都创新互联网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。
  1. 合并Word文档
    1.1 新建一页合并到文档
    1.2 紧接上文合并到文档
  2. 拆分Word文档
    2.1 按分节符拆分
    2.2 按分页符拆分

所用工具

  • Free Spire.Doc for .NET 6.3
  • Visual Studio

示例操作

一、合并Word文档
(一)以新建一页合并到文档
【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文档

(二)紧接上文合并到文档
【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文档

二、拆分Word文档
(一)按分节符拆分
【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文档

(二)按分页符拆分
【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文档

阅读结束。
如需转载,请注明出处!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享标题:C#如何合并、拆分Word文档-创新互联
网站地址:https://www.cdcxhl.com/article12/djsidc.html

成都网站建设公司_创新互联,为您提供自适应网站网页设计公司外贸网站建设云服务器关键词优化App开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计