Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.Doc for.NET 最新下载(qun:767755948)https://www.evget.com/product/3368/download
书签可以定位一个范围。假设range的内容是一些html代码,如何改变range的内容。Spire.Doc支持书签。您可以使用 Spire.Doc 来完成这项工作。
在本文中,将介绍一种解决方案。Spire.Doc 为您提供了一个方法:
public void ReplaceBookmarkContent(TextBodyPart bodyPart)
用 TextBodyPart bodyPart 替换书签的内容。
此方法不能直接处理 html 代码。这是该怎么做。首先加载新的html代码到文档中。然后选择新添加的数据作为TextBodyPart。最后调用替换书签内容的方法。
第 1 步:添加包含 html 代码的书签。
Paragraph p2 = section.AddParagraph(); p2.AppendBookmarkStart("bookmark2"); p2.AppendHTML("<p><font color='blue'>This para is also Generated by Decoding HTML Code</font></p>"); p2.AppendBookmarkEnd("bookmark2");
第 2 步:将新的 html 代码添加到文档中。
Section tempSection = document.AddSection(); String html = "<p>This Bookmark has been <font color=\"#ff0000\">Edited</font></p>"; tempSection.AddParagraph().AppendHTML(html);
第 3 步:获取新添加的 html 作为 TextBodyPart。
ParagraphBase replacementLastItem = tempSection.Paragraphs[tempSection.Paragraphs.Count - 1].Items.LastItem as ParagraphBase; TextBodyPart part = new TextBodyPart(selection);
第4 步:找到书签“bookmark2”,调用ReplaceBookmarkContent方法替换内容。然后删除临时部分。
ParagraphBase replacementFirstItem = tempSection.Paragraphs[0].Items.FirstItem as ParagraphBase; ParagraphBase replacementLastItem = tempSection.Paragraphs[tempSection.Paragraphs.Count - 1].Items.LastItem as ParagraphBase; TextBodySelection selection = new TextBodySelection(replacementFirstItem, replacementLastItem); TextBodyPart part = new TextBodyPart(selection);
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document); //locate the bookmark bookmarkNavigator.MoveToBookmark("bookmark2"); //replace the content of bookmark bookmarkNavigator.ReplaceBookmarkContent(part); //remove temp section document.Sections.Remove(tempSection);
预览原始截图:
预览效果截图:
这是完整的代码:
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System; namespace EditContent { class Program { static void Main(string[] args) { Document document = new Document(); Section section = document.AddSection(); //create bookmarks Paragraph p1 = section.AddParagraph(); p1.AppendBookmarkStart("bookmark1"); p1.AppendHTML("<p><span style="color: blue;">This para is also Generated by Decoding HTML Code</span></p>"); p1.AppendBookmarkEnd("bookmark1"); Paragraph p2 = section.AddParagraph(); p2.AppendBookmarkStart("bookmark2"); p2.AppendHTML("<p><span style="color: blue;">This para is also Generated by Decoding HTML Code</span></p>"); p2.AppendBookmarkEnd("bookmark2"); document.SaveToFile("BeforeReplace.doc"); //create a temp section to contain multiple paragraph. Section tempSection = document.AddSection(); String html = "<p>This Bookmark has been <span>Edited</span></p>"; tempSection.AddParagraph().AppendHTML(html); ParagraphBase replacementFirstItem = tempSection.Paragraphs[0].Items.FirstItem as ParagraphBase; ParagraphBase replacementLastItem = tempSection.Paragraphs[tempSection.Paragraphs.Count - 1].Items.LastItem as ParagraphBase; TextBodySelection selection = new TextBodySelection(replacementFirstItem, replacementLastItem); TextBodyPart part = new TextBodyPart(selection); BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document); //locate the bookmark bookmarkNavigator.MoveToBookmark("bookmark2"); //replace the content of bookmark bookmarkNavigator.ReplaceBookmarkContent(part); //remove temp section document.Sections.Remove(tempSection); document.SaveToFile(@"AfterReplace.doc"); } } }
以上便是如何在 C#、VB.NET 中使用 HTML 代码编辑/替换 Word 书签的内容,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。