向Word模板中填充数据
现在有这样的需求,给Word文档的指定位置填充上特定数据,例如我们有一个终端,用来打印员工的薪资证明,对于一个公司来说,他的薪资证明模板是固定的,变化的地方是员工姓名,部门,职位等。我们只需要将这些指定数据填写到指定位置即可。
1. 制作Word模板,
在Word中,有一个东东叫书签,我们可以在需要填充的地方预先插入特定名称的书签。

2. 在指定的Bookmark位置写入特定数据:
MSWord.Application app = new MSWord.Application();
string destPath = "薪资证明.docx";
string targetPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), destPath);
MSWord.Document doc = app.Documents.Open(targetPath, Visible:false);
MSWord.Bookmark bmName = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Name");
if(bmName != null)
{
bmName.Range.Text = "Tom Wang";
}
MSWord.Bookmark bmDept = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Department");
if(bmDept != null)
{
bmDept.Range.Text = "Department";
}
MSWord.Bookmark bmJob = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Job");
if(bmJob != null)
{
bmJob.Range.Text = "Software engineer";
}
MSWord.Bookmark bmSalary = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Salary");
if(bmSalary != null)
{
bmSalary.Range.Text = "";
}
MSWord.Bookmark bmDate = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Date");
if(bmDate != null)
{
bmDate.Range.Text = DateTime.Now.ToShortDateString();
}
doc.Save();
doc.Close();
Marshal.ReleaseComObject(doc);
Marshal.ReleaseComObject(app);
运行程序,可以将需要的数据插入指定位置。
感谢您的阅读。
向Word模板中填充数据的更多相关文章
- [转载]java向word模板中填充数据(总结)
使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...
- [原创]java向word模板中填充数据(总结)
使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...
- POI往word模板中写入数据
转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...
- 读取word模板,填充数据后导出
一.需求说明 定期生成word报告,报告中含有文本.表格.图表等元素,依次获取进行替换,保留原有样式,生成新的word文档 二.引入依赖 <dependency> <groupId& ...
- 将excel中的数据填入word模板中-VBA
首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如 数据001 什么的.如下图: 这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了. 第 ...
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- Thymeleaf+SpringMVC,如何从模板中获取数据
Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...
- Word模板中的表格处理
在软件系统中,我们经常要输出一些word ,excel,ppt文档,为了输出结果漂亮美观.输出操作方便快捷,通常要制作一些模板文件,通过对模板文件中的关键信息进行修改,就不用管排版.格式等处理了. 在 ...
- Thymeleaf+SpringMVC,如何从模板中获取数据(转)
在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对视图进行完全的抽象,在使用Thymeleaf的情况下,它将是一 ...
随机推荐
- NOIP 2010题解
唔..NOIP2010比较简单,总体感觉不错. Problem 1: 机器翻译 水题,队列的简单应用. 读入时判断是否在内存中,可以用hash优化.如果不在内存中push进内存,放不下了pop hea ...
- PHP 知识点链接
PHP 1.PHP中的危险函数全解析 http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/0216/333 ...
- ajaxfileupload回到json带<pre>
ajaxfileupload返回json带<pre> 老系统,将文件上传方式修改为ajax上传,调用ajaxfileupload.js 出错现象: 文件正常提交,后台接收正常,action ...
- OC block的简单使用
http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...
- phpstorm配置代码自动同步到服务器
首先找到你的菜单栏找到Tools 然后点击配置 填写你的服务器信息 填写好项目目录 选择自动上传
- 【leetcode】Reverse Nodes in k-Group
Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and ret ...
- POJ 3728
http://poj.org/problem?id=3278 题目大意就是在同一坐标轴上给你一个人的坐标,一个牛的坐标,而人的运动每一次运动有三种方式,一种是后退1,一种是前进1,还有一种是坐标翻倍, ...
- [猜数字]把两个数和告诉A,积告诉B,求这两个数是什么
1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 分析: 设和为S,积为M. 首先,A:我不知道. 说明:S可以分解成多个 ...
- git日志输出格式及两个版本之间差异列表
查看commit id git log --pretty=format:"%h" git log --pretty=format:"%H" 获取两个版本间差异的 ...
- Unity3d 解析文本执行已注册的自定函数
最近有个需求是想让程序解析策划编辑一个文本生成一段CG,内容使用大致是这样 cgSetCameraEx(118.6324,30.71189,75.55666,45,-45,0,0) cgCloneMy ...