拆分 Word 文档

MS Word 文档被广泛用于保存和共享信息。在某些情况下,您可能需要从可能位于不同部分或页面中的 Word 文档中拆分数据。此外,您可能需要将单个文档的页面拆分为多个文档。根据这样的场景,本文旨在向您展示如何使用 C# 以编程方式拆分 MS Word 文档。

用于拆分 MS Word 文档的 C# API

Aspose.Words for .NET 是一个功能强大的文字处理 API,可让您使用 C# 或 VB.NET 创建和操作 MS Word 文档。除此之外,它还允许您按部分、页面或页面范围拆分 MS Word 文档。您可以 下载 API 或使用 NuGet 在您的应用程序中安装它。

PM> Install-Package Aspose.Words

使用 C# 按部分拆分 Word 文档

节是指文档中可以应用不同格式的部分。一个部分可以由单个页面、一系列页面或整个文档组成。分节符用于将文档拆分为多个部分。以下是使用 Aspose.Words for .NET 根据其部分拆分 Word 文档的步骤。

以下代码示例显示了如何使用 C# 按部分拆分 MS Word 文档。

// 打开一个 Word 文档
Document doc = new Document("document.docx"); 

for (int i = 0; i < doc.Sections.Count; i++)
{
	// 将文档拆分成更小的部分,在这种情况下按部分拆分
	Section section = doc.Sections[i].Clone();

  // 创建一个新文档
	Document newDoc = new Document();
	newDoc.Sections.Clear();

	Section newSection = (Section)newDoc.ImportNode(section, true);
	newDoc.Sections.Add(newSection);

	// 将每个部分保存为单独的文档
	newDoc.Save($"splitted_{i}.docx");
}

使用 C# 逐页拆分 Word 文档

当 Word 文档的每一页都包含类似类型的信息(例如发票或收据)时,可能会出现这种情况。在这种情况下,您可以拆分文档的页面,以便将每个发票保存为单独的文档。要逐页拆分文档,您可以使用基于 Aspose.Words for .NET 的帮助器类 DocumentPageSplitter。您可以按照以下步骤简单地复制项目中的类并逐页拆分 Word 文档。

  • 使用 Document 类加载 Word 文档。
  • 创建 DocumentPageSplitter 类的对象并使用 Document 对象对其进行初始化。
  • 遍历文档的页面。
  • 使用 DocumentPageSplitter.GetDocumentOfPage(int PageIndex) 方法将每个页面提取到一个新的 Document 对象中。
  • 使用 Document.Save(String) 方法保存每个文档。

以下代码示例演示如何使用 C# 按页面拆分 Word 文档。

// 打开一个 Word 文档
Document doc = new Document("Document.docx");

// 创建和初始化文档分页器
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// 将每个页面保存为单独的文档
for (int page = 1; page <= doc.PageCount; page++)
{
	Document pageDoc = splitter.GetDocumentOfPage(page);
	pageDoc.Save($"spliteed_{page}.docx");
}

使用 C# 按页面范围拆分 Word 文档

您还可以使用 DocumentPageSplitter 类指定页面范围以将其从原始文档中拆分出来。例如,如果您需要将页面从 2 拆分到 4,只需在 DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex) 方法中指定开始和结束页面的索引。

以下代码示例展示了如何使用 C# 从 Word 文档中拆分页面范围。

// 打开一个 Word 文档
Document doc = new Document("document.docx");

// 创建和初始化文档页面拆分器
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// 获取页面范围
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");

结论

在本文中,您学习了如何使用 C# 以编程方式拆分 MS Word 文档。已与代码示例一起讨论了按节、页和页范围拆分 Word 文档的方案。您可以使用 文档 探索更多关于 Aspose.Words for .NET 的信息。

也可以看看