场景
在办公类应用中,常常遇到以下场景:
将数据库数据取出,批量填充到预先画好的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的强大了,它可以用脚本模拟你的手工编辑过程。即时说,常见的手工操作它都可以做到。
本例包含哪些功能?
- 打开word模板
- cut模板

本文介绍如何利用VBA在Word中批量填充数据到预设模板,适用于需要从数据库导出并打印的场景。文章讨论了为何选择VBA而非其他工具(如jacob, iText),并详细阐述了VBA的适用范围和能实现的功能,包括打开模板、填充内容、分页及进度显示等。此外,还提供了部署步骤和进一步学习VBA的资源。"
124595934,11233827,Maven配置与使用指南,"['Java', 'maven', 'jar', '构建工具']
1万+

被折叠的 条评论
为什么被折叠?



