场景

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

将数据库数据取出,批量填充到预先画好的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的同学,可以参考这篇文章

转载于:https://my.oschina.net/u/1440018/blog/543255

用VBA实现批量数据填充到word模板相关推荐

  1. java word模版填充_Java 数据填充到word模板中

    maven引用 com.deepoove poi-tl 1.6.0-beta1 javax javaee-api 7.0 org.apache.poi poi-ooxml 4.1.2 org.apac ...

  2. 利用docxtpl库将excel里的数据向一个word模板里填充数据,并保存为一个word文档

    ###程序功能说明:该功能是将excel里的数据向一个word模板里填充数据,并保存为一个word文档. from docxtpl import DocxTemplate import openpyx ...

  3. 如何在Python中将数据插入到Word模板中生成一份Word文档

    在一些的项目开发中,会有一些生成Word文件的操作,比如将获取到的一些数据添加到Word模板当中的相应的位置生成一份Word文档. 由于最近的Python项目当中需要将一些从服务器查出的数据添加到Wo ...

  4. 四行Python代码解决excel数据填充到word指定位置!

    网上介绍这两种格式转换的文章很多, 发现很少有实现指定位置替换并将所有内容生成在一个文档的,综合前辈的经验探索出了解决方案,希望能给有需要的小伙伴帮助. excel原数据: 目标格式: 我们的目标就是 ...

  5. 使用Python由Excel表格中采集数据填充至Word表格特定单元格并批量生成文件

    工作中我们经常会遇到,从EXCEL表格中大量复制粘贴数据至WORD表格中,再存为一个个单独文件,这种枯燥乏味的重复性工作不仅效率低下,还特别容易出错.本人试着做了一个小项目,仅用了19.441秒就自动 ...

  6. python记录-excel批量数据导出为word表格

    根据文章 https://blog.csdn.net/weixin_46308408/article/details/104351792,自己捣鼓了一下,批量导入word,还是很不错的! 目前问题:调 ...

  7. 使用VBA将Excel数据导入到Word的表格中

    现要求将一个Excel数据表中的每行数据导成一个Word文档,即有多少行数据就生成多少个Word文档,Excel每列与Word文档中的表格项一一对应. 前置工作:将Word文档空表格当然模板文档做好, ...

  8. Word 邮件合并功能(Excel表中指定列数据插入到Word模板指定位置,批量生成Word)

    [邮件]选项卡[开始邮件合并]下拉按钮,选择[邮件合并分布向导] 在"邮件合并"任务窗格中的"选择文档类型"中选择"信函",单击" ...

  9. 利用Excel VBA实现批量数据分组转置

    问题:如上图所示,按lon,lat分组,再进行转置. VBA代码: Sub admin()Dim conn, xRs, xFdSet conn = CreateObject("ADODB.C ...

  10. VBA宏批量处理多个Word文档

    前言 工作里面需要处理上百个Word文档,所以就开始在网上查找宏相关的代码 由于第一次接触宏相关的代码,所以写得肯定不会很好.不过,最后勉强算是解决了问题,为了以后方便查找,就把代码贴上来. 开启.编 ...

最新文章

  1. 重磅 | 谷歌Waymo最新发布可完全脱离人类操控的自动驾驶汽车
  2. 推荐7款实用强大的神器工具,建议你先收藏,总有一天你会用到!
  3. 2.爬虫的Python基础
  4. C# Task的使用
  5. orcal 数据库 maven架构 ssh框架 的全xml环境模版 及常见异常解决
  6. c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
  7. mariadb不能导入与mysql可以,mysql/mariadb知识点总结(12):insert语句总结
  8. oracle 由非归档到归档模式
  9. DotNET的GNU版开源实现DotGNU
  10. javaScript原型链继承
  11. Windows、Linux下安装Redis图文教程
  12. xshell卸载注册表删除问题
  13. 炒股杠杆-API智能交易软件基本函数
  14. archlinux + dwm系统美化
  15. QT24A01 TNK以太网变压器
  16. SAT数学公式之几何图形
  17. Mysql——DQL(查询语句语法、格式、举例)以及全部数据库源码,复制就可实现全部功能
  18. Blockchain Meets Edge Computing: A Distributed and Trusted Authentication System
  19. Games101-课程13笔记
  20. 大数据分析课程(数据分析课设--包含代码)

热门文章

  1. 飞鸽原创博客,真正的飞鸽官方博客
  2. FPGA电源设计总结
  3. 厦门大学 软件学院 夏令营
  4. quartus如何生成sof_如何高效利用Arm DesignStart计划开放的处理器核-工具篇
  5. PHP 编写“九九乘法表”
  6. 迪斯科算法_为什么迪斯科极乐世界如此可重播
  7. 一篇文章让你认识什么是saas模式
  8. std::weak_ptr(分析、仿写)
  9. WPF——鼠标悬停在按钮时,只显示文字并高亮
  10. cgcs2000大地坐标系地图_测绘人必备!从地方坐标系到2000国家大地坐标系的转换...