Word书签不但可以帮助读者快速跳转到想要查看的位置,而且可以用做“占位符”,程序员获取“占位符”之后,就可以更新这些“占位符”,即替换书签内容。替换模板文档中的书签内容,可以帮助我们快速生成Word报表或文档。
本文总结了一个将常见的Word文档元素(文字、图片和表格)替换进书签的C#解决方案,具体步骤见下文。
使用工具:
- Spire.Doc.dll 6.4.5
- Visual Studio 2013
步骤一 制作模板
1. 新建Word文档
![](https://i-blog.csdnimg.cn/blog_migrate/95811fcd90a99ef38bb2a7e97ef63c15.png)
图1 创建文档
2. 插入书签
图2 插入书签
3. 保存模板,命名为“bookmark_template.docx”
![](https://i-blog.csdnimg.cn/blog_migrate/6c8f866aef67829a62b3ebac9e318bcd.png)
图3 保存模板文档
步骤二 在项目中添加引用
1. 右键点击“解决方案资源管理”中的“引用”,选择“添加引用”
图4 添加引用
2. 选择要引用的Spire.Doc.dll文件,添加至项目中
图5 引用Spire.Doc.dll
步骤三 编码
Spire.Doc提供了BookmarksNavigator类来获取和操作文档中的书签,但方法不是很直观。为了方便,我自己封装了Bookmark类,其中包括RepalceContent及其2个重载方法来分别应对插入文字、图片和表格三种情况。
- public TextRange ReplaceContent(string bookmarkName, string text, bool saveFormatting)