1. 程式人生 > >C# 操作Word書簽(二)——讀取、替換Word書簽

C# 操作Word書簽(二)——讀取、替換Word書簽

內容替換 ces name 保存 graphs nav edit 51cto 變量

在上一篇文章中介紹了關於C#如何插入Word書簽、插入圖片或表格到word、刪除word書簽等內容,本篇文章將繼續介紹C#操作word書簽的方法。下面的示例中將介紹

  • C# 如何讀取Word書簽
  • C# 如何替換Word書簽

工具使用

  • Spire.Doc for .NET 6.1
  • Visual Studio

    示例代碼

    原文檔中的書簽內容:

技術分享圖片

1. 讀取word書簽

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;

namespace GetTextOfBookmark_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //實例化Document類,加載測試文檔
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //初始化BookmarkNavigator類對象
            BookmarksNavigator navigator = new BookmarksNavigator(doc);

            //定位到指定書簽位置,獲取書簽位置的文檔內容
            navigator.MoveToBookmark("bookmark1");
            TextBodyPart textBodyPart = navigator.GetBookmarkContent();

            //遍歷書簽內容中的子項目,並將文本信息提取至string類型變量中
            string text = null;
            foreach (var item in textBodyPart.BodyItems)
            {
                if (item is Paragraph)
                {
                    foreach (var childObject in (item as Paragraph).ChildObjects)
                    {
                        if (childObject is TextRange)
                        {
                            text += (childObject as TextRange).Text;
                        }
                    }
                }
            }
            //控制臺輸出文本
            Console.WriteLine(text);
            Console.ReadLine();
        }
    }
}

讀取結果如下:
技術分享圖片

2、替換書簽內容

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace EditOrReplaceBookmark_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Document類實例,加載文檔 
            Document document = new Document();
            document.LoadFromFile("test.docx");

            Section sec = document.AddSection();//添加section
            sec.AddParagraph().AppendText("Welcome Back, \n My Friend!"); //添加段落到section,並添加字符串內容

            //獲取段落內容 
            ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
            ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
            //實例化類TextBodySelection和TextBodyPart
            TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
            TextBodyPart part = new TextBodyPart(selection);

            BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);//實例化BookmarksNavigator類 
            bookmarkNavigator.MoveToBookmark("bookmark1", true, true);//定位到書簽“bookmark1”所在段落的位置
            bookmarkNavigator.DeleteBookmarkContent(true);//刪除原有書簽位置的內容
            bookmarkNavigator.ReplaceBookmarkContent(part, true, true);//用新添加段落的內容替換掉原書簽的內容並保留格式            

            //移除section
            document.Sections.Remove(sec);

            //保存文檔並打開
            document.SaveToFile("替換書簽.docx");
            System.Diagnostics.Process.Start("替換書簽.docx");
        }
    }
}

測試結果:
技術分享圖片

以上是本次關於C# 操作Word書簽功能的補充介紹,如需轉載,請註明出處。
(本文完)

C# 操作Word書簽(二)——讀取、替換Word書簽