-
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(10); newPath = FileLocation + "new\\" + random + "\\" + filePath; while (!File.Exists(newPath)) { random = randomPW.GetRandomPW(10); 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版本,安装之后可以使用。
原文链接:https://www.cnblogs.com/yuchenghao/p/8884029.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数