用VBA实现批量数据填充到word模板

场景 

在办公类应用中,常常遇到以下场景:

将数据库数据取出,批量填充到预先画好的word模板,输出用于打印的word文档。

 

限制

ie浏览器,本机安装了word。

 

问:那么多可以选择的,jacob, iText, 国内大量的在线编辑控件,为什么非得用前端VBA呢?

  归根溯源,由于word的私有格式,对于其文档的程序操作只能通过其所谓automation来进行,

  本质上就是利用word的Activex组件封装所开放的接口。编程语言可以是VB,C#,或者在ie浏览器调用VBA。

 

 java环境下的 jacob是通过jni实现对com的调用,其执行效率之低是可以想见的,更为头疼的是,在这种无法掌控的脆弱调用中,

 难以解决资源泄漏和并发调用冲突。何况,在服务端调用com,也就将服务绑定在win系统下了。

 在浏览器端调用VBA资源泄漏和并发调用冲突都浮云了。

 iText只能单向用语句输出word或rtf,似乎不能打开word文档操作,这样的话,模板填充的想法也就泡汤了。

 国内很多公司通过com组件封装了许多office web在线编辑类的组件,但本例中,不涉及在线编辑,用word自带组件就够了。

 

 VBA编程能做到何种程度?

 如果你在word中试用过“录制宏”,就会了解VBA的强大了,它可以用脚本模拟你的手工编辑过程。即时说,常见的手工操作它都可以做到。

 

本例包含哪些功能?

  1. 打开word模板
  2. cut模板
  3. paste模板内容
  4. 逐条获取数据
  5. 寻找关键字并填充(支持图片填充)
  6. 每3条数据加分页
  7. 支持填充过程的进度显示

部署

  1. 将附件展开到web或者本地目录下
  2. 访问“[你的目录]//tp_word/t1.html”
  3. 点击”print2doc“按钮开始执行

授渔

我想编写更加复杂的VBA,有哪些工具和资料可用?

附件是在网上搜到的VBA手册,但是是VBScript格式的,习惯javascript的同学,可以参考这篇文章

 

 

 

你可能感兴趣的:(VBA)