C# 操作Word书签(二)——读取、替换Word书签_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 操作Word书签(二)——读取、替换Word书签

C# 操作Word书签(二)——读取、替换Word书签

 2018/8/22 12:22:35  Miaonly  程序员俱乐部  我要评论(0)
  • 摘要:在上一篇文章中介绍了关于C#如何插入Word书签、插入图片或表格到word、删除word书签等内容,本篇文章将继续介绍C#操作word书签的方法。下面的示例中将介绍C#如何读取Word书签C#如何替换Word书签工具使用Spire.Docfor.NET6.1VisualStudio示例代码原文档中的书签内容:1.读取word书签【C#】usingSpire.Doc;usingSpire.Doc.Documents;usingSpire.Doc.Fields;usingSystem
  • 标签:C# 书签 操作

class="MsoNormal">在上一篇文章中介绍了关于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书签功能的补充介绍,如需转载,请注明出处。

? (本文完)

?

  • 大小: 57.8 KB
  • 大小: 47.8 KB
  • 大小: 42.8 KB
  • 查看图片附件
发表评论
用户名: 匿名