概述
出于方便文档管理、存储、传输等目的,我们常会想要将某些文档拆分为多个子文档,或者将多个文档合并为一个文档。在本文中,将介绍对Word文档进行拆分、合并的方法。下面的示例中将包含以下要点:
1. 合并Word文档
1.1 新建一页合并到文档
1.2紧接上文合并到文档
2. 拆分Word文档
2.1 按分节符拆分
2.2 按分页符拆分
所用工具:
- Free Spire.Doc for .NET
- 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#
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); } } }
合并效果:
二、拆分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#
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# 2008编译的一个实用工具,专为处理大文件,特别是Word文档和图片文件而设计。它允许用户将大文件拆分为多个小文件,并在需要时将这些小文件合并回原始文件。 首先,我们来看文件拆分的部分。在C#中...
### C#操控Word文档知识点详解 #### 一、概述 在C#中,可以通过引用`Microsoft.Office.Interop.Word`命名空间来实现对Word文档的操作。这种方式主要用于自动化Word文档处理任务,如创建新文档、编辑现有文档、添加...
C#实现通过模板自动创建Word文档的方法,详细介绍了如何插入书签,再通过书签插入文字,图片,表格等等。付有详细代码。
下面是一个简单的示例,展示如何基于页码拆分Word文档: ```csharp using Microsoft.Office.Interop.Word; // 创建Word应用程序对象 Application word = new Application(); Document doc = word.Documents.Open(...
在C#编程环境中,操作Microsoft Word文档是一项常见的任务,尤其在自动化报告生成、数据整合或者文档处理中。本文将深入探讨C#与Word交互的接口方法,以及如何利用这些方法来实现诸如添加书签、插入图片、文字、表格...
C#操作Word表格是指使用C#语言来操作Microsoft Word文档中的表格,包括向表格中添加行、合并单元格、拆分单元格、设置表格样式等操作。本文将总结C#操作Word表格的常用方法。 一、向表格中添加行 向表格中添加行有...
1.1 Word初始 2 1.2 新建 2 1.3 打开 2 1.4 保存 2 1.5 不保存 2 1.6 关闭组件 2 2. 文档操作 3 2.1 文本范围 3 2.2 复制粘贴 3 2.3 字体 3 2.4 段落 4 2.5 标题 5 2.6 编辑 5 2.7分页 6 3. 表格 6 3.1 新建表 6 3.2...
4. **邮件合并**:邮件合并是Xceed.Words.NET的一个强大特性,它可以将单个Word文档模板与数据源结合,生成大量个性化输出,常用于批量发送信函、发票等。 5. **读取和解析文档**:控件能够读取现有的Word文档,并...
此外,它还支持转换Word文档为其他格式,如HTML、PDF等,以及合并、拆分、比较文档等功能。 2. **Spire.License.dll**: 这个库主要用于处理Spire产品的授权问题。在商业应用中,为了合法使用Spire.Doc和Spire.Pdf...
此外,还可以调整行高、列宽,合并或拆分单元格,甚至执行更复杂的格式化任务。例如,以下代码会将第一列的宽度设为5厘米: ```csharp table.Columns[1].Width = 5 * 72; // Word的单位是点,1厘米约等于72点 ``` ...
Aspose.Word是一款强大的编程库,专门用于处理Microsoft Word文档,包括读取、写入、转换和操作DOC、DOCX格式的文件。它提供了多种API,支持多种编程语言,如Java、.NET、PHP等,使得开发者能够轻松地在应用程序中...
将一个Word文档分割成多个文档,并且保留源文档格式不变。 操作原理是,打开需要操作的文档,把不需要的页面删除掉, 然后另存为文档,如此反复操作就可取出所有页数。 项目已编译好可直接运行学习 基于微软提供的...
本话题聚焦于如何利用C#实现“将Word分页输出”,即将Word文档的每一页内容独立保存为多个单独的文档。这个功能对于需要对大量文档进行拆分、归档或者按页面处理的工作场景非常有用。 首先,我们需要了解C#中用于...
你可以创建新表格、合并或拆分单元格、调整列宽和行高、添加或删除行和列、应用样式和格式,甚至执行复杂的计算。这对于处理数据报告、产品目录或者课程大纲等文档非常有用。 4. 分页:在长文档中,分页是必不可少...
二、批量拆分Word文档 在Aspose.Word中,拆分文档通常涉及到将一个大型文档分割成多个小文档,每个小文档可能包含原始文档中的一个或多个部分。这个过程可以通过遍历文档的段落或页面来实现。例如,你可以设置一个...
它可以用来创建、编辑、转换和显示Word文档,也可以用于文本替换、页面布局调整等任务。 3. **Aspose.Pdf**: 这是Aspose工具集中处理PDF文档的核心组件。它提供了丰富的API,支持PDF的创建、阅读、更新和转换。在...
首先,让我们详细探讨如何使用C#来拆分Word文档。在处理大型Word文档时,有时我们需要将文档分割成多个小部分,以便管理和编辑。C#中的Microsoft.Office.Interop.Word库提供了与Word交互的能力。通过创建Word应用...
《C#编程规范 2.0》是一份详尽的编程指南,旨在帮助开发者遵循一套标准的编程风格,提升代码的可读性、可维护性和团队协作效率。规范的制定原则首要强调的是清晰性和一致性,这包括但不限于变量、类、方法的命名规则...
例如,当面对一份过大的PDF或Word文档,阅读和查找特定内容可能会变得困难,而文档切割机则能有效地解决这个问题。它可能采用了流式读取和写入技术,逐行处理原始文档,然后按照预设的大小或页数将其拆分为多个独立...
有时需要将多个PDF文档合并为一个,或者从一个大文档中拆分成多个小文档。PDFSharp和iTextSharp都提供了这样的功能,允许开发者根据需求进行操作。 8. **PDF转HTML**与**HTML转PDF**: 要在Web环境中处理PDF,...