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

 时间:2024-10-30 08:09:45

出于方便文档管理、存储、传输等目的,我们常会想要将某些文档进行拆分或者合并。在本文中,将介绍C#合并、拆分方法。

工具/原料

Free Spire.Doc for .NET(社区版)

合并Word文档

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文档

拆分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文档
  • Xshell连接linux(图文教程)
  • C# XML反序列化与序列化
  • 如何对Qt5 程序进行winrar自解压的打包
  • Window2008R2如何安装Telnet客户端?
  • 微软MS10-046漏洞报告
  • 热门搜索
    五一劳动节手抄报内容 元旦手抄报简单又漂亮 植树节手抄报一等奖 心理健康手抄报模板 六一儿童节手抄报内容 教师节手抄报内容 溺水手抄报简单又漂亮 我们的节日手抄报 科学手抄报图片大全 春节手抄报资料