C# 如何在Word文档中添加,替换和删除书签

书签在Word文档中尤其是在篇幅比较长的word文档中的应用非常广泛。当我们对一段文本添加书签后,这段文本将会被方括号包围。下一次我们可以直接通过查找书签来快速回到相应文本所在的位置而不需要通过滚动条在整个文档中逐一查找。可以说书签的应用帮我们节省了很多时间。那么如何通过编程的方式来操作Word文档中的书签呢?

本文将介绍如何使用.NET Word组件-Spire.Doc和C#在Word文档中添加,替换和删除书签。

 

Spire.Doc组件概述 

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET组件。这款组件的主要功能在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。它是一款独立的组件,运行(服务器端或客户端)无需安装 Microsoft Word。支持 多种格式如Word97-2003,Word2007,Word2010 以及 Word2013等。能在Word和XML、RTF、TXT、XPS、EPUB、EMF、HTML 等格式文件之间进行双向转换,还能将 Word 文档高质量地转换为 PDF 和 SVG 文件格式。

 

添加书签 

该组件提供了一个类叫做Paragraph,在该类中有两个方法AppendBookmarkStart (string name) 和 AppendBookmarkEnd (string name)可以帮助我们添加书签到指定的段落,其中BookmarkStart代表的是书签的起始位置,BookmarkEnd代表的是书签的结束位置。

//加载文档
Document document = new Document();
document.LoadFromFile(@"test.docx");
 
//添加书签
Section section = document.Sections[0];
section.Paragraphs[2].AppendBookmarkStart("bookmark");
section.Paragraphs[3].AppendBookmarkEnd("bookmark");
 
//保存文档
document.SaveToFile("Bookmark.docx", FileFormat.Docx);


替换书签

BookmarkNavigator是用于导航到书签的,通过它我们可以获取,替换和删除指定书签的内容。使用该组件,我们还可以在替换书签时保留原书签的格式,仅需要将ReplaceBookmarkContent (TextBodyPart bodyPart, bool isKeepSourceFirstParaFormat, bool saveFormatting) 方法中的saveFormatting 参数设置为true。

//加载文档
Document document = new Document();
document.LoadFromFile(@"Bookmark.docx");
 
//添加一个section到文档
Section sec = document.AddSection();
//添加两个段落到section
sec.AddParagraph().AppendText("Welcome Back, ");
sec.AddParagraph().AppendText("Friend! ");
 
//获取两个段落的内容(Text Body Part)
ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
TextBodyPart part = new TextBodyPart(selection);
 
//移动到书签“bookmark”, 删除它的内容并保留格式
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
bookmarkNavigator.MoveToBookmark("bookmark", true, true);
bookmarkNavigator.DeleteBookmarkContent(true);
 
//用两个段落的内容替换掉原书签的内容并保留格式
bookmarkNavigator.ReplaceBookmarkContent(part, true, true);
 
//移除section并保存文档
document.Sections.Remove(sec);
document.SaveToFile("ReplaceBookmark.docx");



删除书签

在该组件中,每一个Word文档都含有一个书签的集合,我们可以通过Document类的Bookmarks属性来访问该集合,并可以通过该属性来查找指定的书签并将其删除。

//加载文档
Document document = new Document();
document.LoadFromFile(@"Bookmark.docx");
Bookmark bookmark = document.Bookmarks.FindByName("bookmark");
//移除书签“bookmark”
document.Bookmarks.Remove(bookmark);
//保存文档
document.SaveToFile("RemoveBookmark.docx", FileFormat.Docx);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值