基于模板替换的word文档自动生成

2023-05-16

简介

word文档自动生成程序是一个根据用户提供的模板word文档以及一些必要的数据文件来渲染生成所要的word文档的工具。

关键词:批量word文档生成、word文档渲染、自动生成word

使用场景

几种典型的可以采用该工具减少工作量和增加效率的场景。

(1)需要批量生成大量内容基本相同,仅少数信息有差别的word文档。例如生成大量员工的合同、工资单等;

(2)需要在word文档中插入某种指定的大量的数据,手动插入这些数据非常耗时;

(3)需要多次生成一类word文档,每次的word文档仅指定的数据内容改变,其他总体格式保持不变;

(4)根据实验数据等生成word报告,实验数据会发生变化,报告内容大体不变,每次有新的实验数据就需要重新写word报告;

(5)需要在word报告中批量插入大量的图片或者表格,图片在单独的目录下能按规则准备好,或者表格中的数据在excel中已经准备好。

使用方法

用户准备word模板文件,并命名为template.docx

用户编写标签-内容文件,命名为labels.txt

将所有的附加依赖的数据文件,以及template.docx和labels.txt全部放在工作目录下

cmd窗口中执行程序

autoWord.exe 工作目录

例如执行程序所给样例:通用示例

在autoWord.exe程序和通用示例文件夹在同一个目录的情况下,在命令行窗口中执行

autoWord.exe  通用示例

或者指定通用示例文件夹所在的绝对路径

autoWord.exe  C:\\mytest\通用示例

由于本程序在命令行窗口中执行,无需界面操作,因此可供开发者在程序中调用,实现批量自动调用该工具。

本程序提供了多个样例供参考使用,参照用例的labels.txt和template.docx以及生成的product.word可以快速理解使用方法。

关于标签-内容文件labels.txt

它是由用户编写的,记录word中标记的标签,以及数据文件中要替换成的数据内容的文档。

labels.txt的编写需要遵守严格的规则。

关于模板word文档

用户用指定的规则符合在模板word文档中标记一些需要实际替换的文字或图片,表格等数据,这些标记将在程序执行后被替换成labels.txt中指定的内容。

参考样例

word的模板文档样例

详见:(272条消息) word文档-样例1-模板文档_xiyangxiaoguo的博客-CSDN博客

生成的word文档样例

详见:(272条消息) word文档-样例1-结果文档_xiyangxiaoguo的博客-CSDN博客

labels.txt

 如下文档:

#标签--内容对应文档
#==================标签解释======================
#标签不仅可以在Word模板中定义使用,也可以作为中间量在其他的标签中使用
#符号{{}}为内部标记,<>为属性标记,属性标记都是可以缺省的,[]和[[]]为数组标记,()为数组截取部分
##为行注释,#后面的内容将不被读取,常用于忽略某个标签
#:标签名 表示引用一个已经定义的标签的内容
#:.结构体成员名 表示引用一个结构体的某个成员的内容
#=值 表示使用一个具体的值

#以下标签头为特定含义的标签,用户需要严格遵循其语义使用
#image_**表示图片类标签
#array_**表示数组类标签
#pageSeparatedTable_**长表格标签
#table_**普通表格标签
#struct_** 多种复合内容块标签
#-----------------------------------------------

#普通文字替换标签
title={{机械工业}}
testSentence={{当前语句将放入目标文档标记处}}
tableCaption1={{核天体物理学}}
header={{核反应率}}
absorb1={{核燃料1}}
absorb2={{核燃料2}}
struct1={{核反应堆1}}
struct2={{核反应堆2}}
what={{中子}}
who={{光子}}
para2={{中子通量密度}}
subpara2={{核反应率}}
subsubpara2={{多普勒效应或多普勒展宽}}
dopulo={{多普勒展宽}}
alada={{pg,yd}}
zhoudeshi={{lualu}}
id={{100}}
chibu={{xxxxxxxxxx
yyyyyyyyyy}}
caption_label1={{这是一个行数目非常多的表格}}

#图片标签
#属性标签:height图片高度,width图片宽度
image_xx={{chart.png<height=50,width=100>}}
image_yy={{chart.png<height=50,width=50>}}
imageCaption_yy={{这是一个自动插入的图题注}}

#数组类型的数据
array_xx={{[['baba','caca','dili'],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[4,5,6]]}}
array_h1={{['baba','caca','dili']}}
array_h2={{['序号','苹果','梨']}}

#文件类型的数据
#文件类型的数据将自动读取出来并且把内容转化为普通文本标签,数组等类型
file_xx={{xyz.csv}} #csv和xlsx格式的文件将读取成为二维的数组类型
file_xyz={{xyz.xlsx}}

array_mp={{:file_xx}}

#长表格标签--长表格需要将表格拆解成多页,每页单独一个题注
#属性标签:horizontal_header水平表头,vertical_header垂直表头,caption题注,rows_perPage每页的行限制,usePageIndex使用分页指引(1/10)-当前页/总共页
pageSeparatedTable_xx={{:array_xx<horizontal_header:array_h1,caption:caption_label1,rows_perPage=4,usePageIndex=True>}}
#普通表格标签
table_xx={{:array_xx}}

table_reflect={{:array_xx<horizontal_header:array_h2>}}
array_mab={{:array_mp}}
#用array_**类型去存信息
array_kids={{[['这是第一个子表格','chart.png','图1','zhanghong','2023-01','PJ-RBDD'],['这是第一个子表格','chart.png','图2','liming','2023-01','PJ-RBDX']]}}
array_mem={{['label','image_1','title','author','date','code']}}

#用struct_**类型去解析复合的内容块信息
#属性标签:members内容块的项目成员,
#对于项目成员中的类型为图片的,请使用image_开头的名字作为该项目成员的名字,如image_apple
struct_kids={{:array_kids<members:array_mem>}} #用户可以在Word文档中通过 struct_kids.label去使用相应内容块的子内容

程序获取地址

链接:https://pan.baidu.com/s/1RXA5JzUb9fmB-EnwFWd8CA?pwd=ptty 
提取码:ptty

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于模板替换的word文档自动生成 的相关文章

随机推荐

  • 5G+北斗RTK定位:高精度定位技术发展更进一步

    5G 43 北斗RTK定位采用5G定位与北斗RTK定位技术 xff0c 在信号 信息 设施 应用等层面深度融合 xff0c 5G自身可实现亚米级的定位能力与北斗形成信号覆盖互补 xff0c 实现从室内到室外无缝隙衔接与定位 5G通信技术的到
  • 室外定位:高精度北斗RTK定位技术

    北斗RTK定位技术 xff0c 也称北斗差分定位技术 xff0c 利用我国自主研发的北斗卫星定位系统实现精确定位功能 定位精度可根据需要 xff0c 通过选择不同精度的人员定位终端来实现 在科技强国的战略驱动下 xff0c 北斗RTK定位技
  • 【高精度定位】RTK定位与RTD定位知识科普

    高精度定位一般指亚米级别或厘米级别的定位 xff0c 常见的室内有蓝牙AoA和UWB两种技术 xff0c 室外有北斗地基增强技术 xff0c 这些技术都是采用算法进行定位 工业4 0时代 xff0c 在资源和环境约束不断强化的背景下 xff
  • curl http或https上传下载

    curl的使用 注意如果是https请求需要带上ssl的库和curl库如下图 上传文件 回调函数 span class token keyword static span size t span class token function h
  • 层次遍历构建二叉树

    span class hljs keyword struct span TreeNode span class hljs keyword int span val span class hljs keyword struct span Tr
  • Jetson tx2 使用 jetpack 4.3刷机全过程

    1 首先准备一台安装有ubuntu 18 04 ubuntu16 04 系统的主机 xff08 host也就是笔记本 xff09 2 在nvidia官网注册一个nvidia的账号用于下载jetpack 4 3时使用 xff08 刷机过程中需
  • 2020/2/21 Linux Socket编程 高级篇——广播

    广播 xff1a 实现一对多的通信 SO BROADCAST选项 它控制了UDP套接字是否能发广播数据报 xff0c 选项类型是int xff0c 非零表示 是 只有UDP能用 xff0c TCP不能 如果是一个广播地址 xff0c 但SO
  • 大小端字节序(Big Endian和Little Endian)

    那么何为字节序 xff08 Endia xff09 呢 xff1f Big Endian是指低地址存放最高有效字节 xff08 MSB xff09 xff0c 而Little Endian则是低地址存放最低有效字节 xff08 LSB xf
  • GPS定位及通信协议解析

    1 简介 上图为某公司的GPS定位模块 xff0c 自己在使用其进行GPS定位过程中学习到的知识分享给大家 主要参数如下 半双工 UART 3 3V TTL 电平 RS232 IIC CAN 接口输出 xff0c 更快速的应用 xff1b
  • JVM系列(八):堆(Heap)的相关知识介绍

    目录 1 JVM堆的概念 2 JVM堆的特点 3 JVM堆的内部结构 3 1 组成 3 2 堆内存内部空间所占比例 3 3 永久代和元空间区别 4 堆空间的大小设置 5 堆空间垃圾回收 1 JVM堆的概念 JVM中的堆是用来存放对象的内存空
  • C++读写TIF格式

    参考文章 xff1a xff08 1 xff09 https www cnblogs com gywei p 3393816 html xff08 2 xff09 https blog csdn net han jiang xue arti
  • matlab Fourier变换--方波信号的分解与重建

    N 61 200 采用的数据点数 dt 61 4 N 采样的间隔 for n 61 1 N 生成一个方波 if n dt gt 61 2 x n 61 0 8 else x n 61 0 8 end end figure subplot 2
  • matlab 小波分析--高通滤波器和低通滤波器

    xff08 一 xff09 加载一个尺度滤波器 load db8 w 61 db8 figure subplot 4 2 1 stem w title 39 原尺度滤波器 39 计算4个滤波器 Lo D Hi D Lo R Hi R 61
  • C/C++中rand() 函数产生随机数与srand()设置随机数种子

    xff08 1 xff09 rand 产生随机数 xff0c 输出的随机数序列是确定的 xff0c 即每次运行结果一致 include lt iostream gt int main int i j for i 61 0 i lt 10 i
  • matlab与数字图像处理--膨胀和腐蚀

    对于初学者 xff0c 参考一篇很好的说明 xff1a https blog csdn net alw 123 article details 83868878 左边是一个二值化的测试图像 xff0c 白色为图像元素 xff0c 黑色为背景
  • Emmet语法

    Emmet语法 1 1 快速生成HTML结构语法1 2 快速生成CSS样式语法1 3 快速格式化代码 Emmet语法的前身是Zen coding 它使用缩写 来提高html css的编写速度 Vscode内部已经集成该语法 快速生成HTML
  • CString,int,string,char*之间的转换

    C 43 43 标准函数库 中说的 有三个函数可以将字符串的内容转换为字符数组和C string 1 data 返回没有 0 的字符串数组 2 c str xff0c 返回有 0 的字符串数组 3 xff0c copy int 转 CStr
  • C++ TCP网络编程--服务器端多线程处理会话连接

    客户端程序 xff1a include lt winsock h gt include lt iostream gt pragma comment lib 34 ws2 32 lib 34 include lt Windows h gt i
  • matlab复杂函数多元函数拟合

    简介 本文介绍了基于matlab实现的复杂函数以及多元函数的拟合 在工程和研究中偶尔会遇到要用一个非常复杂的数学公式来拟合实验测量数据 xff0c 对这些复杂的数学公式拟合时 xff0c 采用常见的拟合方法往往会失败 xff0c 或者得不到
  • 基于模板替换的word文档自动生成

    简介 word文档自动生成程序是一个根据用户提供的模板word文档以及一些必要的数据文件来渲染生成所要的word文档的工具 关键词 xff1a 批量word文档生成 word文档渲染 自动生成word 使用场景 xff1a 几种典型的可以采