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

在上一篇文章中介绍了关于C#如何插入Word书签、插入图片或表格到word、删除word书签等内容,本篇文章将继续介绍C#操作word书签的方法。下面的示例中将介绍

  • C# 如何读取Word书签
  • C# 如何替换Word书签

工具使用

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书签功能的补充介绍,如需转载,请注明出处。
(本文完)

原文地址:http://blog.51cto.com/eiceblue/2147149

时间: 2024-09-29 09:20:39

C# 操作Word书签(二)——读取、替换Word书签的相关文章

章鱼哥—VB.NET Office操作之Word(二)

这篇文章在 章鱼哥-VB.NET Office操作之Word(一) 的基础上,给类添加了光标操作的内容,包括获取word 文档中光标的位置,将光标跳至指定行,上下左右移动光标等操作.该文中给定的方法直接复制到上篇文中的类中即可.不懂得可以联系我.下篇文章将给出这个类具体实现的代码,所有代码都经过笔者的测试,可直接使用. '********************************************************************* '作者:章鱼哥,QQ:3107073

Office(Excel、Word)二次开发——VSTO

Office(Excel.Word)二次开发--VSTO Office(Excel.Word)二次开发--VSTO Office二次开发模式: 1) VBA(visual studio for application),功能有限,语言落后. 2) .net2003中的对象模型(com组件,excelobject 11 library)功能强大,需手动操作. 3) vs.net2005中的vsto(visual studiotool for office)    VSTO方便快捷功能强大. 2).

使用POI替换word中的特定字符/文字改进版

package com.xfzx.test.POI.main; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import jav

C# 替换Word文字【包含页眉、页脚、文本框、普通文字的替换】

---使用 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ToWord { class Program { static void Main(string[] args) { string sourceFile = @"c:\users\administrator\documents\visual studio 2012\Projects\ToWord

C# 替换Word文本—— 用文档、图片、表格替换文本

编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改.在C# 在word中查找及替换文本一文中,主要介绍了在Word中以文本替换文本的方法,在本篇文章中,将介绍如何用一篇Word文档.图片或者表格来替换文档中的指定文本字符串.示例要点如下: 1. 用文档替换Word中的文本 2. 用图片替换Word中的文本 3. 用表格替换Word中的文本 工具 Free Spire.Doc for .NET 下载安装后,注意在程序中添加引用Spire.Doc.dll(如下图),dll文件可

批量替换word内容

有一个需求需要把word中的一段文档的编号批量替换 如,把133-183批量的替换成31-81,需要批量的替换word,脚本如下 from docx import Document import os oldFile = "C:\\Users\\wuzs\\Desktop\\test.docx" newFile = "C:\\Users\\wuzs\\Desktop\\test2.docx" DICT = { "SP_OS_NETWORK_133"

利用Python将excel数据读取到word表格

在工作中可能需要两者对excel和word进行转化,今天介绍例如Python 将excel转word表格 看图,我需要将这份excel文档转word表格: 思路: 1.创建需要的表格: 2.读取excel文档: 3.将excel文档数据写入word表格对应的位置: 4.循环 需要用到的模块 创建表格,由于我需要的表格需要进行合并处理,所以使用merge合并单元格 接下来,读取excel文档数据 然后,将excel数据写入到已创建的word表格中 至此我们就可以将一条excel数据读取到word表

C#操作word的一些基本方法(word打印,插入文件,插入图片,定位页眉页脚,去掉横线)

Microsoft.Office.Interop.Word.Application wordApp = new ApplicationClass() word对象 2. Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing) 文档对象 3. Object Nothing = System.Reflection

用 DocumentFormat.OpenXml 和Microsoft.Office.Interop.Word 写入或者读取word文件

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace MediaTools.Tool { public class WordHelper { public static void TxtToword(string docPath,