当前位置: 首页 > news >正文

C#/VB.NET 给Word文档添加/撤销书签

在现代办公环境中,阅读或者编辑较长篇幅的Word文档时,想要在文档中某一处或者几处留下标记,方便日后查找、修改时,需要在相对应的文档位置插入书签。那对于开发者而言,在C#或者VB.NET语言环境中,如何来快速、简便的插入书签呢,我分享一下我的经验。这里我用到了一款E-iceblue公司发布的一款免费的Word组件(Free Spire.Doc for .NET),方法很简单,如下:

步骤一:初始化Document实例并加载Word文档

Document document = new Document();
document.LoadFromFile(@"C:\Users\Administrator\Desktop\中国梦.docx ");

步骤二:于第七段末和第八段间插入书签,命名书签为“C#.bookmark

Section section = document.Sections[0];
section.Paragraphs[7].AppendBookmarkStart("C#.bookmark");
section.Paragraphs[8].AppendBookmarkEnd("C#.bookmark ");

步骤三:保存文件

document.SaveToFile("Bookmark.docx", FileFormat.Docx);
System.Diagnostics.Process.Start("Bookmark.docx");

完成后以上步骤后,文档中查找定位即可,文档自动定位到当前所设书签位置。

以上简单三个步骤即可完成对word文档书签插入。

完整代码如下,供参考:

C#

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

namespace WordBookmark
{
    class Bookmark
    {
        static void Main(string[] args)
        {
            //Load Document
            Document document = new Document();
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\中国梦.docx ");

            //Insert Bookmark
            Section section = document.Sections[0];
            section.Paragraphs[7].AppendBookmarkStart(".NETFramework");
section.Paragraphs[8].AppendBookmarkEnd(".NETFramework");

            //Save and Launch 
            document.SaveToFile("Bookmark.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Bookmark.docx");
        }
    }
}

VB.NET:

Imports System
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace WordBookmark
    
    Class Bookmark
        
        Private Shared Sub Main(ByVal args() As String)
            'Load Document
            Dim document As Document = New Document
            document.LoadFromFile("C:\Users\Administrator\Desktop\中国梦.docx ")
            'Insert Bookmark
            Dim section As Section = document.Sections(0)
            section.Paragraphs(7).AppendBookmarkStart(".NETFramework")
            section.Paragraphs(8).AppendBookmarkEnd(".NETFramework")
            'Save and Launch 
            document.SaveToFile("Bookmark.docx", FileFormat.Docx)
            System.Diagnostics.Process.Start("Bookmark.docx")
        End Sub
    End Class
End Namespace

同样的,撤销书签也可以参考执行我下面的操作

步骤一:加载需要撤销书签的Word文档

Document doc = new Document();
           doc.LoadFromFile(@"C:\Users\Administrator\Desktop\中国梦(书签).docx");

步骤二:撤销已有书签

doc.Bookmarks.RemoveAt(0);

步骤三:保存文件

doc.SaveToFile("Remove Bookmark.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Remove Bookmark.docx");

撤销书签后,得到以下文档效果

如图,原本插入书签的段落已撤销书签
完整代码如下

C#

using Spire.Doc;

namespace Removing
{
    class Program
    {
        static void Main(string[] args)
        {
            //Load Document
            Document doc = new Document();
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\中国梦(书签).docx ");

            //Remove Bookmark
            doc.Bookmarks.RemoveAt(0);

            //Save and Launch
            doc.SaveToFile("Remove Bookmark.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Remove Bookmark.docx");
        }
    }
}

VB.NET:

Imports Spire.Doc

Namespace Removing
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            'Load Document
            Dim doc As Document = New Document
            doc.LoadFromFile("C:\Users\Administrator\Desktop\中国梦(书签).docx ")
            'Remove Bookmark
            doc.Bookmarks.RemoveAt(0)
            'Save and Launch
            doc.SaveToFile("Remove Bookmark.docx", FileFormat.Docx)
            System.Diagnostics.Process.Start("Remove Bookmark.docx")
        End Sub
    End Class
End Namespace

以上内容是本人对word插入及撤销书签的操作演示,希望我的这个分享对你有所启发,感谢阅读!

 

相关文章:

  • include 和require的区别
  • windows7安装saltstack
  • 训练过程中出现的报错
  • python基础知识
  • mysql的锁机制
  • STM32——C语言知识点:指针、结构体
  • maven及阿里云镜像
  • 【批处理学习笔记】第七课:简单的批处理命令(6)
  • fdisk非交互自动对磁盘分区格式化
  • UWP开发砸手机系列(二)—— “讲述人”识别自定义控件Command
  • Windows容器网络
  • 阿里云 云监控 安装和启动
  • diff命令
  • 42 Bing Search Engine Hacks
  • 配置新服务器 的一些 依赖库 php mysql nginx
  • JavaScript-如何实现克隆(clone)函数
  • 〔开发系列〕一次关于小程序开发的深度总结
  • download使用浅析
  • Java Agent 学习笔记
  • JavaScript设计模式之工厂模式
  • Java深入 - 深入理解Java集合
  • Java小白进阶笔记(3)-初级面向对象
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • spring boot 整合mybatis 无法输出sql的问题
  • 程序员最讨厌的9句话,你可有补充?
  • 关于List、List?、ListObject的区别
  • 爬虫模拟登陆 SegmentFault
  • 配置 PM2 实现代码自动发布
  • 写代码的正确姿势
  • ​flutter 代码混淆
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #QT(一种朴素的计算器实现方法)
  • (C语言)二分查找 超详细
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)计算机毕业设计大学生兼职系统
  • (九)信息融合方式简介
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • . NET自动找可写目录
  • .bat批处理出现中文乱码的情况
  • .FileZilla的使用和主动模式被动模式介绍
  • .jks文件(JAVA KeyStore)
  • .NET Core 版本不支持的问题
  • .NET Micro Framework初体验(二)
  • .Net(C#)常用转换byte转uint32、byte转float等
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ 第一章] JavaScript 简史
  • [ABC294Ex] K-Coloring
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [APIO2015]巴厘岛的雕塑
  • [C++]运行时,如何确保一个对象是只读的