C# 操作Word书签,插入、删除书签
概要
书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间。对word文档中的书签操作,比较常见的是直接对某段文字插入书签,在下面的示例中,除了介绍插入书签的方法外,也将介绍操作书签的一些拓展方法,包括插入图片、表格到书签位置所在的段落、删除书签等。示例要点如下:
1. 插入书签
2. 插入图片到书签
3. 插入表格到书签
4. 删除书签
4.1 删除书签
4.2 删除书签所在的段落文字
使用工具
- Free Spire.Doc for .NET 6.3 (社区版)
- Visual Studio
ps:下载安装该类库后,注意添加引用Spire.Doc.dl到项目程序,dll文件可在安装路径的Bin文件夹中获取。
【示例1】插入书签
C#
C#代码
- using System;
- using Spire.Doc;
- using Spire.Doc.Documents;
- namespace WordBookmark
- {
- class Bookmark
- {
- static void Main(string[] args)
- {
- //实例化Document类,加载文档
- Document document = new Document();
- document.LoadFromFile("test.docx");
- //插入书签到指定段落,并命名书签
- Section section = document.Sections[0];
- section.Paragraphs[1].AppendBookmarkStart("Bookmark1");
- section.Paragraphs[2].AppendBookmarkEnd("Bookmark1");
- //保存并打开文档
- document.SaveToFile("InsertBookmark.docx", FileFormat.Docx);
- System.Diagnostics.Process.Start("InsertBookmark.docx");
- }
- }
- }
测试效果:
【示例2】插入图片到书签所在段落
C#
C#代码
- using Spire.Doc;
- using Spire.Doc.Documents;
- using Spire.Doc.Fields;
- using System.Drawing;
- namespace InsertImgToBookmark_Doc
- {
- class Program
- {
- static void Main(string[] args)
- {
- //创建实例,加载文档
- Document document = new Document();
- document.LoadFromFile("test.docx");
- //实例化BookmarksNavigator类,指定需要添加图片的书签“Bookmark1”
- BookmarksNavigator bn = new BookmarksNavigator(document);
- bn.MoveToBookmark("Bookmark1", true, true);
- //添加段落,加载图片并插入到段落
- Section section0 = document.AddSection();
- Paragraph paragraph = section0.AddParagraph();
- Image image = Image.FromFile("img.png");
- DocPicture picture = paragraph.AppendPicture(image);
- bn.InsertParagraph(paragraph);
- document.Sections.Remove(section0);
- //保存文档并打开
- string output = "result.docx";
- document.SaveToFile(output, FileFormat.Docx);
- System.Diagnostics.Process.Start(output);
- }
- }
- }
图片插入效果:
【示例3】插入表格到书签所在段落
C#
C#代码
- using Spire.Doc;
- using Spire.Doc.Documents;
- using System.Data;
- namespace InsertTableToBookmark_Doc
- {
- class Program
- {
- static void Main(string[] args)
- {
- //创建文档,加载文件
- Document doc = new Document();
- doc.LoadFromFile("test.docx");
- //创建Table对象
- Table table = new Table(doc, true);
- //创建模拟数据
- DataTable dt = new DataTable();
- dt.Columns.Add("PI", typeof(string));
- dt.Columns.Add("Type", typeof(string));
- dt.Columns.Add("Nov.", typeof(string));
- dt.Columns.Add("YTD", typeof(string));
- dt.Rows.Add(new string[] { "PI","Type", "Nov.", "YTD" });
- dt.Rows.Add(new string[] { "1", "BAIC EC-Series", "15.719", "64.910" });
- dt.Rows.Add(new string[] { "2", "Tesla Model S", "3.889", "46.951" });
- dt.Rows.Add(new string[] { "3", "Nissan Leaf", "2.817", "46.423" });
- //将数据填充至表格
- table.ResetCells(dt.Rows.Count, dt.Columns.Count);
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString());
- }
- }
- //获取指定书签位置
- BookmarksNavigator navigator = new BookmarksNavigator(doc);
- navigator.MoveToBookmark("origin2");
- //将表格添加至TextBodyPart
- TextBodyPart part = navigator.GetBookmarkContent();
- part.BodyItems.Add(table);
- //替换书签内容
- navigator.ReplaceBookmarkContent(part);
- //保存并打开文件
- doc.SaveToFile("output.docx", FileFormat.Docx2013);
- System.Diagnostics.Process.Start("output.docx");
- }
- }
- }
表格插入效果:
【示例4】删除书签
C#
C#代码
- using Spire.Doc;
- using Spire.Doc.Documents;
- namespace Removing
- {
- class Program
- {
- static void Main(string[] args)
- {
- //实例化Document类,加载文档
- Document doc = new Document();
- doc.LoadFromFile("sample.docx");
- //创建BookmarksNavigator实例
- BookmarksNavigator navigator = new BookmarksNavigator(doc);
- //指向特定的书签
- navigator.MoveToBookmark("origin2");
- //删除书签中的内容
- navigator.DeleteBookmarkContent(false);
- //删除书签
- doc.Bookmarks.Remove(doc.Bookmarks.FindByName("bookmark1"));
- //保存并打开文档
- doc.SaveToFile("RemoveBookmark.docx", FileFormat.Docx);
- System.Diagnostics.Process.Start("RemoveBookmark.docx");
- }
- }
- }
书签删除效果前后对比:
测试文档如下
删除书签后:
文章转自http://miaonly.iteye.com/blog/2428804
C# 操作Word书签,插入、删除书签相关推荐
- C#操作Word模板并且修改书签
原文地址:C#操作Word模板并且修改书签作者:大坏蛋 //生成WORD程序对象和WORD文档对象 Microsoft.Office.Interop.Word.Application appWord ...
- java读写word模板_Java操作Word模板插入列表
Java操作Word模板插入列表 通过poi操作word,插入各种编号的列表,包括数字,字母,罗马字符,自定义任意字符.下面的示例就用了音乐符♬. 1.制作模板,插入列表使用语法*,模板内容为{{*n ...
- QT操作Word,插入表格
最近在做QT导出word报表,发现网上的资源不是很多,也浪费了很多时间,我自己做了一份demo,将会详细讲述如何做出需要样式的报表.在网上很容易查到java或者其他语言操作word的接口函数,但是QT ...
- C++操作word:插入文字、图片、表格,设置样式字体
想要控制word文档,向word写入文字,图片,表格等并控制其格式,可以引入第三方库,#include "msword.h",网上的资料很多,在此不再赘述.下面封装好的代码,,很简 ...
- Java 操作Word书签(一):添加、删除、读取书签
Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...
- java书签_Java 操作Word书签(一):添加、删除、读取书签
Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...
- 修改word中插入-书签快捷键:Ctrl+Shift+F5快捷键的方式
公司在做各种月报分析时,需要在word中插入大量书签来代表数据源,但每次插入都得点开插入-书签对话框实在太麻烦了,搜了下word中默认的插入-书签快捷键为:Ctrl+Shift+F5,但这个快捷键还是 ...
- java pdf 书签_Java PDF书签——添加、编辑、删除、读取书签
本文介绍通过Java程序来操作PDF书签,根据对书签的不同操作要求,分以下情况来介绍: 1. 添加书签(包括添加一级书签.多级子书签) 3. 删除书签(包括删除所有书签.删除子书签等) 4. 读取书签 ...
- C# 操作Word书签(一)插入、删除书签
概要 书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间.对word文档中的书签操作,比较常见的是直接对某段文字插入书签,在下面的示例中,除了介绍插入书签的方法外,也将介绍操作书签 ...
最新文章
- 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)
- PokeCats开发者日志(一)
- Win64 驱动内核编程-28.枚举消息钩子
- STM32系列--初识寄存器1
- Objective-C中MRC和ARC的自我理解
- 专科程序员吐槽:学历是硬伤!问:想进大厂试试必须学历够格么?
- @ExceptionHandler
- pythonsklearn乳腺癌数据集_Python的Sklearn库中的数据集
- C#正则表达式判断输入日期格式是否正确
- 华为机试题2[编程题] 汽水瓶
- 删数问题 详解(C++)
- CSDN没有C币如何下载文章?
- 交通信息工程 实验四:交通仿真实验(二)
- blackman窗 matlab,【matlab】矩形窗/三角窗/hanning窗/hamming窗/blackman窗的频率响应图...
- Execution failed for task ':app:processDebugResources'. No slave process to process jobs, aborting
- 商业智能,数据仓库,ETL,数仓调度工具informatica介绍手账(二)
- 推荐用于环境识别的机器人摄像头
- 绝对位置运动指令(MoveAbsJ)
- Zabbix5.0网易邮箱163告警详细步骤
- Flink前世今生和原理
热门文章
- springboot自定义消息转换器HttpMessageConverter
- python怎么画折线图
- ArcGIS API for JavaScript字体库下载及本地字体库配置
- 罗技F710使用笔记
- python使用虚拟内存_python – 为什么导入numpy在Linux上添加1 GB的虚拟内存?
- python函数var是求什么_copula函数及其Var计算的Python实现
- STM32CubeMX学习笔记——STM32H743_硬件I2C
- Vue2.x项目兼容IE9的常见问题及解决方案
- 英语文献PDF全文翻译,附网站,无需注册
- VUE+webrtc-streamer实现实时视频播放(监控设备-rtsp)