Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1538585
  • 博文数量: 95
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 941
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(95)

文章存档

2019年(41)

2018年(45)

2017年(9)

我的朋友

分类: C#/.net

2018-08-21 17:49:26

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

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


工具使用

示例代码

原文档中的书签内容:


1. 读取word书签

【C#】


  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;
  4. using System;

  5. namespace GetTextOfBookmark_Doc
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             //实例化Document类,加载测试文档
  12.             Document doc = new Document();
  13.             doc.LoadFromFile("test.docx");

  14.             //初始化BookmarkNavigator类对象
  15.             BookmarksNavigator navigator = new BookmarksNavigator(doc);

  16.             //定位到指定书签位置,获取书签位置的文档内容
  17.             navigator.MoveToBookmark("bookmark1");
  18.             TextBodyPart textBodyPart = navigator.GetBookmarkContent();

  19.             //遍历书签内容中的子项目,并将文本信息提取至string类型变量中
  20.             string text = null;
  21.             foreach (var item in textBodyPart.BodyItems)
  22.             {
  23.                 if (item is Paragraph)
  24.                 {
  25.                     foreach (var childObject in (item as Paragraph).ChildObjects)
  26.                     {
  27.                         if (childObject is TextRange)
  28.                         {
  29.                             text += (childObject as TextRange).Text;
  30.                         }
  31.                     }
  32.                 }
  33.             }
  34.             //控制台输出文本
  35.             Console.WriteLine(text);
  36.             Console.ReadLine();
  37.         }
  38.     }
  39. }

读取结果如下


2. 替换书签内容

【C#】


  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;

  4. namespace EditOrReplaceBookmark_Doc
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //创建Document类实例,加载文档
  11.             Document document = new Document();
  12.             document.LoadFromFile("test.docx");

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

  15.             //获取段落内容
  16.             ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
  17.             ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
  18.             //实例化类TextBodySelection和TextBodyPart
  19.             TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
  20.             TextBodyPart part = new TextBodyPart(selection);

  21.             BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);//实例化BookmarksNavigator类
  22.             bookmarkNavigator.MoveToBookmark("bookmark1", true, true);//定位到书签“bookmark1”所在段落的位置
  23.             bookmarkNavigator.DeleteBookmarkContent(true);//删除原有书签位置的内容
  24.             bookmarkNavigator.ReplaceBookmarkContent(part, true, true);//用新添加段落的内容替换掉原书签的内容并保留格式

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

  27.             //保存文档并打开
  28.             document.SaveToFile("替换书签.docx");
  29.             System.Diagnostics.Process.Start("替换书签.docx");
  30.         }
  31.     }
  32. }

测试结果:


以上是本次关于C# 操作Word书签功能的补充介绍,如需转载,请注明出处。

(本文完)

阅读(1367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册