从 Word 文档中读取内容对于许多工作和学习任务至关重要。从 Word 文档中读取一页的内容有助于快速浏览和摘要关键信息,从 Word 文档中读取一个节的内容可帮助深入理解特定主题或部分内容,而从 Word 文档中读取整个文档的内容则能够全面把握整体信息,促进综合分析和理解。本文将介绍如何使用 Spire.Doc for .NET 在 C# 项目中从 Word 文档中的读取一页的内容、一个节的内容和整个文档的内容。
安装 Spire.Doc for .NET
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
C# 从 Word 文档中读取一页的内容
通过使用 FixedLayoutDocument 类和 FixedLayoutPage 类,可以轻松获取指定页面的内容。为了方便查看被提取的内容,这段示例代码将读取的内容存储到一个新的 Word 文档中。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载示例 Word 文档。
- 创建一个 FixedLayoutDocument 对象。
- 获取文档中的一个页面的 FixedLayoutPage 对象。
- 通过 FixedLayoutPage.Section 属性获取页面所在的节。
- 获取页面第一个段落在节中的索引位置。
- 获取页面最后一个段落在节中的索引位置。
- 创建另一个 Document 对象。
- 使用 Document.AddSection() 添加一个新的节。
- 使用 Section.CloneSectionPropertiesTo(newSection) 方法将原始节的属性克隆到新节中。
- 复制原文档中页面的内容到新文档中。
- 使用 Document.SaveToFile() 方法保存结果文档。
- C#
using Spire.Doc;
using Spire.Doc.Pages;
using Spire.Doc.Documents;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个新的文档对象
Document document = new Document();
// 从指定文件加载文档内容
document.LoadFromFile("示例.docx");
// 创建一个固定布局文档对象
FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);
// 获取第一个页面
FixedLayoutPage page = layoutDoc.Pages[0];
// 获取页面所在的节
Section section = page.Section;
// 获取页面第一列的第一行的段落
Paragraph paragraphStart = page.Columns[0].Lines[0].Paragraph;
int startIndex = 0;
if (paragraphStart != null)
{
// 获取段落在节中的索引
startIndex = section.Body.ChildObjects.IndexOf(paragraphStart);
}
// 获取页面第一列最后一行的段落
Paragraph paragraphEnd = page.Columns[0].Lines[page.Columns[0].Lines.Count - 1].Paragraph;
int endIndex = 0;
if (paragraphEnd != null)
{
// 获取段落在节中的索引
endIndex = section.Body.ChildObjects.IndexOf(paragraphEnd);
}
// 创建一个新的文档对象
Document newdoc = new Document();
// 添加一个新的节
Section newSection = newdoc.AddSection();
// 克隆原节的属性到新节
section.CloneSectionPropertiesTo(newSection);
// 复制原文档中一部分内容到新文档
for (int i = startIndex; i <= endIndex ; i++)
{
newSection.Body.ChildObjects.Add(section.Body.ChildObjects[i].Clone());
}
// 将新文档保存为指定文件
newdoc.SaveToFile("读取一页的内容.docx", Spire.Doc.FileFormat.Docx);
// 关闭并释放新文档
newdoc.Close();
newdoc.Dispose();
// 关闭并释放原文档
document.Close();
document.Dispose();
}
}
}
C# 从 Word 文档中读取一个节的内容
通过使用 Document.Sections[index] 可以读取到特定的 Section 对象,它包含了页眉页脚和正文内容,此示例提供了将一个节的全部内容拷贝到其他的文档中的一个简单方式。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载示例 Word 文档。
- 使用 Document.Sections[1] 获取文档的第二个节。
- 创建另一个新的 Document 对象。
- 使用 Document.CloneDefaultStyleTo(newdoc) 方法克隆原始文档的默认样式到新文档。
- 使用 newdoc.Sections.Add(section.Clone()) 方法将原始文档的第二个节的内容克隆到新文档中。
- 使用 Document.SaveToFile() 方法保存结果文档。
- C#
using Spire.Doc;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个新的文档对象
Document document = new Document();
// 从文件加载Word文档
document.LoadFromFile("示例.docx");
// 获取文档的第二个节
Section section = document.Sections[1];
// 创建一个新的文档对象
Document newdoc = new Document();
// 将默认样式克隆到新文档
document.CloneDefaultStyleTo(newdoc);
// 将第二个节克隆到新文档中
newdoc.Sections.Add(section.Clone());
// 将新文档保存为文件
newdoc.SaveToFile("读取一个节的内容.docx", Spire.Doc.FileFormat.Docx);
// 关闭并释放新文档对象
newdoc.Close();
newdoc.Dispose();
// 关闭并释放原始文档对象
document.Close();
document.Dispose();
}
}
}
C# 从 Word 文档中读取整个文档的内容
此示例展示了通过遍历原始文档的每个节来实现读取整个文档的内容,并将每个节克隆到新文档中。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载示例 Word 文档。
- 创建另一个新的 Document 对象。
- 使用 Document.CloneDefaultStyleTo(newdoc) 方法克隆原始文档的默认样式到新文档。
- 使用一个 foreach 循环遍历原始文档中的每个节并将其克隆到新文档中。
- 使用 Document.SaveToFile() 方法保存结果文档。
- C#
using Spire.Doc;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个新的文档对象
Document document = new Document();
// 从文件加载Word文档
document.LoadFromFile("示例.docx");
// 创建一个新的文档对象
Document newdoc = new Document();
// 将默认样式克隆到新文档
document.CloneDefaultStyleTo(newdoc);
// 遍历原始文档中的每个节并将其克隆到新文档中
foreach (Section sourceSection in document.Sections)
{
newdoc.Sections.Add(sourceSection.Clone());
}
// 将新文档保存为文件
newdoc.SaveToFile("读取整个文档的内容.docx", Spire.Doc.FileFormat.Docx);
// 关闭并释放新文档对象
newdoc.Close();
newdoc.Dispose();
// 关闭并释放原始文档对象
document.Close();
document.Dispose();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。