C# 操作Word書籤(一)插入、刪除書籤

概要

書籤的設置可以幫助我們快速的定位某段文字,使用起來很方便,也很節省時間。對word文檔中的書籤操作,比較常見的是直接對某段文字插入書籤,在下面的示例中,除了介紹插入書籤的方法外,也將介紹操作書籤的一些拓展方法,包括插入圖片、表格到書籤位置所在的段落、刪除書籤等。示例要點如下:

  1. 插入書籤
  2. 插入圖片到書籤
  3. 插入表格到書籤
  4. 刪除書籤
    4.1 刪除書籤
    4.2 刪除書籤所在的段落文字

使用工具

【示例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");
        }
    }
}

測試效果:
C# 操作Word書籤(一)插入、刪除書籤

【示例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);
        }
    }
}

圖片插入效果:
C# 操作Word書籤(一)插入、刪除書籤

【示例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");
        }
    }
}

表格插入效果:

C# 操作Word書籤(一)插入、刪除書籤

【示例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書籤(一)插入、刪除書籤
刪除書籤後:
C# 操作Word書籤(一)插入、刪除書籤

以上內容爲本次“C#操作Word書籤的方法”介紹如需轉載,請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章