概要
書籤的設置可以幫助我們快速的定位某段文字,使用起來很方便,也很節省時間。對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#
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"); //將表格添加至TextBodyPart TextBodyPart part = navigator.GetBookmarkContent(); part.BodyItems.Add(table); //替換書籤內容 navigator.ReplaceBookmarkContent(part); //保存並打開文件 doc.SaveToFile("output.docx", FileFormat.Docx2013); 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書籤的方法”介紹如需轉載,請註明出處。