c#操作word书签
因项目需要,给word文档的书签赋值,框架没有相关内容,于是自己上网加上查看文档,成功搞定该功能。下面是我的实现过程:
首先需要引用nuget包: Microsoft.Office.Interop.Word,我下载的是12.0.0版本的,刚开始下载的15.0.0版本的无法使用,暂时不知道为什么,有空研究一下;然后就是代码实现:
/// <summary>
/// 版 本
/// Copyright (c) 2018-2018
/// 创建人:Yu
/// 日 期:2018.04.17
/// word操作
/// </summary
public class WordHelp
{
ApplicationClass wordApp = new ApplicationClass();
Document doc;
/// <summary>
/// 生成文件存放地址
/// </summary>
public string newPath { get; set; }
/// <summary>
/// 生成的新文件文件夹路径
/// </summary>
public string newDicPath { get; set; }
/// <summary>
/// 无参构造方法
/// </summary>
public WordHelp() { }
/// <summary>
/// 打开模板
/// </summary>
/// <param name="fileName">文档名</param>
public WordHelp(string filePath)
{
try
{
var FileLocation = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
var oldPath = FileLocation + filePath;
RandomPW randomPW = new RandomPW();
var random = randomPW.GetRandomPW();
newPath = FileLocation + "new\\" + random + "\\" + filePath;
while (!File.Exists(newPath))
{
random = randomPW.GetRandomPW();
newPath = FileLocation + "new\\" + random + "\\" + filePath;
Directory.CreateDirectory(FileLocation + "new\\" + random + "\\");
File.Copy(oldPath, newPath);
}
newDicPath = FileLocation + "new\\" + random + "\\";
object fileobj = newPath;
object nullobj = System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
}
catch (Exception e)
{
Close();
DelDic(newPath);
}
}
/// <summary>
///获取word的书签集合
/// </summary>
/// <returns></returns>
public List<string> GetBookmarks()
{
List<string> bookmarks = new List<string> { };
foreach (Bookmark bk in doc.Bookmarks)
{
bookmarks.Add(bk.Name);
}
return bookmarks;
} /// <summary>
/// 给书签赋值
/// </summary>
/// <param name="key">书签名</param>
/// <param name="value">书签值</param>
public void SetBookmarks(object key, string value) => doc.Bookmarks.get_Item(ref key).Range.Text = value;
/// <summary>
/// 关闭io
/// </summary>
public void Close() => doc.Close();
/// <summary>
/// 删除生成的文件
/// </summary>
/// <param name="filePath"></param>
public void DelDic(string filePath)=> Directory.Delete(filePath, true);
}
然后发现程序运行时还是报错,
未加载加程序集Microsoft.Office.Interop.Word………………
查看了一下,原来是我没有安装office,我安装的是2007版本,安装之后可以使用。
c#操作word书签的更多相关文章
- C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签
概要 书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间.在前一篇文章“C# 如何添加/删除Word书签”中介绍了插入.删除书签的方法,本篇文章将对C# 操作Word书签的功能做进 ...
- Java 操作Word书签(二):添加文本、图片、表格到书签内容
在Java操作Word书签(一)中介绍了给Word中的特定段落或文字添加书签.读取及删除已有书签的方法,本文将继续介绍Java 操作Word书签的方法,即如何给已有的书签添加内容,包括添加文本.图片. ...
- Java 操作Word书签(三):用文本、图片、表格替换书签
本篇文章将继续介绍通过Java来操作Word书签的方法,即替换Word中已有书签,包括用新的文本.图片.表格等替换原有书签处的内容. 使用工具:Free Spire.Doc for Java (免费版 ...
- Java 操作Word书签(一):添加、删除、读取书签
Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...
- C#操作Word文档(加密、解密、对应书签插入分页符)
原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...
- C#中操作Word(1)—— word对象模型介绍
一.开发环境布置 C#中添加对Word的支持,只需添加对Microsoft.Office.Interop.Word的命名空间,如下图所示,右键点击“引用”,在弹出的“添加引用”对话框中选中COM标签页 ...
- C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
- C#操作Word的辅助类(word2003) 修改完善版
转自:http://blog.csdn.net/jiutao_tang/article/details/6567608 该类在他人编写的几个类基础上扩展完善而来,主要功能有: (1)插入文本 (2)插 ...
- Aspose.Words操作word生成PDF文档
Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...
随机推荐
- Python list 遇到的问题
1.list“+” 运算 <list += > diff. <ndarray +=> list1 += list2是追加,而不是加法运算 list1 = [0,0,0] lis ...
- legend3---8、烦请节约时间
legend3---8.烦请节约时间 一.总结 一句话总结: 时间不要浪费在垃圾情绪和无效社交上面. 1.商标不能以个人的名义注册? 可以先注册个体工商户,然后再可以注册商标 2.注册一个商标大概花多 ...
- Flutter移动电商实战 --(13)ADBanner组件的编写
1.AdBanner组件的编写 我们还是把这部分单独出来,需要说明的是,这个Class你也是可以完全独立成一个dart文件的.代码如下: 广告图片 class AdBanner extends Sta ...
- zookeeper备忘
ZooInspector https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip 参考:https://b ...
- React入门----基础篇
React 背景介绍 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做 ...
- LC 980. Unique Paths III
On a 2-dimensional grid, there are 4 types of squares: 1 represents the starting square. There is e ...
- win10下检查nvidia显卡支持的cuda版本
1.首先将[C:\Program Files\NVIDIA Corporation\NVSMI]添加至系统环境变量[path]中: 2.在powershell中使用命令[nvidia-smi],即可看 ...
- NET全控件
NBSI WebSite Injection ReportSite Address: www.xmht.comInject URL: http://www.xmht.com/news.aspx?sty ...
- Hadoop、Hbase —— 服务启动、验证、停止
一.Hadoop 1.启动Hadoop cd /usr/local/hadoop-2.7.3/sbin ./start-dfs.sh 启动过程如下: 2.验证Hadoop是否启动成功 2.1.在主节 ...
- Git学习教程一之安装Git&&&本地仓库建立
一. 安装git 1:在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项一直安装即可. 2:安装完成后,在开始菜单里找到“Git”-> ...