现在有这样的需求,给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模板中填充数据的更多相关文章

  1. [转载]java向word模板中填充数据(总结)

    使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...

  2. [原创]java向word模板中填充数据(总结)

    使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...

  3. POI往word模板中写入数据

    转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  4. 读取word模板,填充数据后导出

    一.需求说明 定期生成word报告,报告中含有文本.表格.图表等元素,依次获取进行替换,保留原有样式,生成新的word文档 二.引入依赖 <dependency> <groupId& ...

  5. 将excel中的数据填入word模板中-VBA

    首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如   数据001  什么的.如下图: 这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了. 第 ...

  6. 如何使用免费控件将Word表格中的数据导入到Excel中

    我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...

  7. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...

  8. Word模板中的表格处理

    在软件系统中,我们经常要输出一些word ,excel,ppt文档,为了输出结果漂亮美观.输出操作方便快捷,通常要制作一些模板文件,通过对模板文件中的关键信息进行修改,就不用管排版.格式等处理了. 在 ...

  9. Thymeleaf+SpringMVC,如何从模板中获取数据(转)

    在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对视图进行完全的抽象,在使用Thymeleaf的情况下,它将是一 ...

随机推荐

  1. python tkinter用Treeview实现ListView效果

    先上图 再上代码: import ttk from Tkinter import * root = Tk() tree = ttk.Treeview(root, columns=('col1','co ...

  2. Maven打包附加配置文件

    在build节点下增加resources. <build> <!-- 资源 --> <resources> <!-- 复制非class文件 --> &l ...

  3. Database、User、Schema、Tables、Col、Row

    可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)就被放入每个房间中 ...

  4. Java Dao设计模式

    一.信息系统的开发架构   客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/S ...

  5. 设计算法,求AB两个整数集合的交集

    [本文链接] http://www.cnblogs.com/hellogiser/p/ab-set-intersection.html [分析] 思路1:排序法 对集合A和集合B进行排序(升序,用快排 ...

  6. iOS NSObject 的 isa 属性的类型 Class

    以前对NSObject的isa属性也知道点,但是了解不深,今天看了这篇博文,感觉很好,总结一下: http://chun.tips/blog/2014/11/05/bao-gen-wen-di-obj ...

  7. php empty()和isset()

    2015年12月11日 10:59:08 echo phpversion(); //5.6.13 $a = array( 'aaa' => 1, 'bbb' => 0, 'ccc' =&g ...

  8. 24. javacript高级程序设计-最佳实践

    1. 最佳实践 l 来自其他语言的代码约定可以用于决定何时进行注释,以及如何进行缩进,不过JavaScript需要针对其松散类型的性质创造一些特殊的约定 l javascript应该定义行为,html ...

  9. centos6.5Xen4.2安装

    官方安装文档:http://xen.crc.id.au/support/guides/install/ 一.环境说明 1. 本文采用CentOS6.5 x64,安装开发包及开发工具. 2. 关闭sel ...

  10. 实现Windows Phone 8中ListBox的分页加载

    功能就是ListBox滚动到最下方的时候,能够自动加载下一页的内容. 解决问题的关键就是如何判断ListBox已经加载到了最底部. 网上找了两个解决方法: 1 http://googlers.itey ...