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

C# 操作Word书签 插入 删除书签

时间:2019-09-07 15:45:14

相关推荐

C# 操作Word书签 插入 删除书签

概要

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

1. 插入书签

2. 插入图片到书签

3. 插入表格到书签

4. 删除书签

4.1 删除书签

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

使用工具

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

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

【示例1】插入书签

C#

C#代码

usingSystem;usingSpire.Doc;usingSpire.Doc.Documents;namespaceWordBookmark{classBookmark{staticvoidMain(string[]args){//实例化Document类,加载文档Documentdocument=newDocument();document.LoadFromFile("test.docx");//插入书签到指定段落,并命名书签Sectionsection=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#

C#代码

usingSpire.Doc;usingSpire.Doc.Documents;usingSpire.Doc.Fields;usingSystem.Drawing;namespaceInsertImgToBookmark_Doc{classProgram{staticvoidMain(string[]args){//创建实例,加载文档Documentdocument=newDocument();document.LoadFromFile("test.docx");//实例化BookmarksNavigator类,指定需要添加图片的书签“Bookmark1”BookmarksNavigatorbn=newBookmarksNavigator(document);bn.MoveToBookmark("Bookmark1",true,true);//添加段落,加载图片并插入到段落Sectionsection0=document.AddSection();Paragraphparagraph=section0.AddParagraph();Imageimage=Image.FromFile("img.png");DocPicturepicture=paragraph.AppendPicture(image);bn.InsertParagraph(paragraph);document.Sections.Remove(section0);//保存文档并打开stringoutput="result.docx";document.SaveToFile(output,FileFormat.Docx);System.Diagnostics.Process.Start(output);}}}

图片插入效果

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

C#

C#代码

usingSpire.Doc;usingSpire.Doc.Documents;usingSystem.Data;namespaceInsertTableToBookmark_Doc{classProgram{staticvoidMain(string[]args){//创建文档,加载文件Documentdoc=newDocument();doc.LoadFromFile("test.docx");//创建Table对象Tabletable=newTable(doc,true);//创建模拟数据DataTabledt=newDataTable();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(newstring[]{"PI","Type","Nov.","YTD"});dt.Rows.Add(newstring[]{"1","BAICEC-Series","15.719","64.910"});dt.Rows.Add(newstring[]{"2","TeslaModelS","3.889","46.951"});dt.Rows.Add(newstring[]{"3","NissanLeaf","2.817","46.423"});//将数据填充至表格table.ResetCells(dt.Rows.Count,dt.Columns.Count);for(inti=0;i<dt.Rows.Count;i++){for(intj=0;j<dt.Columns.Count;j++){table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString());}}//获取指定书签位置BookmarksNavigatornavigator=newBookmarksNavigator(doc);navigator.MoveToBookmark("origin2");//将表格添加至TextBodyPartTextBodyPartpart=navigator.GetBookmarkContent();part.BodyItems.Add(table);//替换书签内容navigator.ReplaceBookmarkContent(part);//保存并打开文件doc.SaveToFile("output.docx",FileFormat.Docx);System.Diagnostics.Process.Start("output.docx");}}}

表格插入效果

【示例4】删除书签

C#

C#代码

usingSpire.Doc;usingSpire.Doc.Documents;namespaceRemoving{classProgram{staticvoidMain(string[]args){//实例化Document类,加载文档Documentdoc=newDocument();doc.LoadFromFile("sample.docx");//创建BookmarksNavigator实例BookmarksNavigatornavigator=newBookmarksNavigator(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");}}}

书签删除效果前后对比:

测试文档如下

删除书签后:

文章转自/blog/2428804

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