50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > C# 操作Word书签(一)插入 删除书签

C# 操作Word书签(一)插入 删除书签

时间:2024-04-10 13:02:10

相关推荐

C# 操作Word书签(一)插入 删除书签

概要

书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间。对word文档中的书签操作,比较常见的是直接对某段文字插入书签,在下面的示例中,除了介绍插入书签的方法外,也将介绍操作书签的一些拓展方法,包括插入图片、表格到书签位置所在的段落、删除书签等。示例要点如下:

插入书签插入图片到书签插入表格到书签删除书签

4.1 删除书签

4.2 删除书签所在的段落文字

使用工具

Free Spire.Doc for .NET 6.3 (社区版)Visual Studio

ps:下载安装该类库后,注意添加引用Spire.Doc.dl到项目程序,dll文件可在安装路径的Bin文件夹中获取。

【示例1】插入书签

C#

using System;using Spire.Doc;using Spire.Doc.Documents;namespace WordBookmark{class Bookmark{static void Main(string[] args){//实例化Document类,加载文档Document document = new Document();document.LoadFromFile("test.docx");//插入书签到指定段落,并命名书签Section section = document.Sections[0];section.Paragraphs[1].AppendBookmarkStart("Bookmark1");section.Paragraphs[2].AppendBookmarkEnd("Bookmark1");//保存并打开文档 document.SaveToFile("InsertBookmark.docx", FileFormat.Docx);System.Diagnostics.Process.Start("InsertBookmark.docx");}}}

测试效果:

【示例2】插入图片到书签所在段落

C#

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;namespace InsertImgToBookmark_Doc{class Program{static void Main(string[] args){//创建实例,加载文档Document document = new Document();document.LoadFromFile("test.docx");//实例化BookmarksNavigator类,指定需要添加图片的书签“Bookmark1”BookmarksNavigator bn = new BookmarksNavigator(document);bn.MoveToBookmark("Bookmark1", true, true);//添加段落,加载图片并插入到段落Section section0 = document.AddSection();Paragraph paragraph = section0.AddParagraph();Image image = Image.FromFile("img.png");DocPicture picture = paragraph.AppendPicture(image);bn.InsertParagraph(paragraph);document.Sections.Remove(section0);//保存文档并打开string output = "result.docx";document.SaveToFile(output, FileFormat.Docx);System.Diagnostics.Process.Start(output);}}}

图片插入效果:

【示例3】插入表格到书签所在段落

C#

using Spire.Doc;using Spire.Doc.Documents;using System.Data;namespace InsertTableToBookmark_Doc{class Program{static void Main(string[] args){//创建文档,加载文件Document doc = new Document();doc.LoadFromFile("test.docx");//创建Table对象Table table = new Table(doc, true);//创建模拟数据DataTable dt = new DataTable();dt.Columns.Add("PI", typeof(string));dt.Columns.Add("Type", typeof(string));dt.Columns.Add("Nov.", typeof(string));dt.Columns.Add("YTD", typeof(string)); dt.Rows.Add(new string[] { "PI","Type", "Nov.", "YTD" });dt.Rows.Add(new string[] { "1", "BAIC EC-Series", "15.719", "64.910" });dt.Rows.Add(new string[] { "2", "Tesla Model S", "3.889", "46.951" });dt.Rows.Add(new string[] { "3", "Nissan Leaf", "2.817", "46.423" });//将数据填充至表格table.ResetCells(dt.Rows.Count, dt.Columns.Count);for (int i = 0; i < dt.Rows.Count; i++){for (int j = 0; j < dt.Columns.Count; j++){table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString());}}//获取指定书签位置BookmarksNavigator navigator = new BookmarksNavigator(doc);navigator.MoveToBookmark("origin2");//将表格添加至TextBodyPartTextBodyPart part = navigator.GetBookmarkContent();part.BodyItems.Add(table);//替换书签内容navigator.ReplaceBookmarkContent(part);//保存并打开文件doc.SaveToFile("output.docx", FileFormat.Docx);System.Diagnostics.Process.Start("output.docx");}}}

表格插入效果:

【示例4】删除书签

C#

using Spire.Doc;using Spire.Doc.Documents;namespace Removing{class Program{static void Main(string[] args){//实例化Document类,加载文档Document doc = new Document();doc.LoadFromFile("sample.docx");//创建BookmarksNavigator实例BookmarksNavigator navigator = new BookmarksNavigator(doc);//指向特定的书签navigator.MoveToBookmark("origin2");//删除书签中的内容navigator.DeleteBookmarkContent(false);//删除书签doc.Bookmarks.Remove(doc.Bookmarks.FindByName("bookmark1"));//保存并打开文档doc.SaveToFile("RemoveBookmark.docx", FileFormat.Docx);System.Diagnostics.Process.Start("RemoveBookmark.docx");}}}

测试结果:

测试文档如下

删除书签后:

以上内容为本次“C#操作Word书签的方法”介绍如需转载,请注明出处。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。