Python批量处理Excel文件信息替换Word模板
原由和思路
经常上级会下发一些word表格让我们基层填写,涉及人数较多,表格下发给个人之后,格式啊字体啊大小啊都不统一,每次还得重复校对,我就想能不能创建一个大型Excel数据库完成平时信息采集和更新,一次性导入下发的word表格中,并生成新的文件。
使用Excel的原因主要是维护方便,并不是所有人都懂数据库操作,并且制作较为麻烦,尤其是遇到新加字段的时候,工作量大,不如就使用Excel存储数据,维护简单,更新及时。
现在就再想,我码个程序,输入我需要变更的数据列名,替换掉Word模板当中的相应内容,并另存为以名称命名的新文件。但由于数据格式多,所以要求EXCEL处理的时候全部都是文本格式,这样不容易出错,如果转换为.csv格式会更加简洁。
工具准备
Python 3.7 (32bit)
Pycharm
Windows7 (64bit)
Office 2010
1. 前期处理
1.1 数据处理
先看一下我的数据:
第一步,将Excel所有单元格设置为文本后,检查容易出错的几个类型,日期,数字,金额等;
第二步,将第一行全部改为英文描述,利于后期Python编译查找速度,及时不需要的也最好一次性都编译好,以免后期需要再重复工作;
第三步,另存为 csv 格式文件,一定选逗号分隔的,如图:
1.2 模板处理
模板处理使用的是 jinja2 标签 {
{xxx}}的替换模式,将所需要的替换的位置用数据的列名称替换,如图:
这里替换标签里面的内容一定要和数据源的一致,并且和后面程序中的一致。
2. 编写代码
编写前先给大家看一下最后的程序样式,以便有个宏观印象。
2.1 使用Pycharm新建项目ExcelToWord
使用32位Python的原因是兼容性,64位的Python打包的程序只能64位系统使用,32位的Python打包的程序可以在32位、64位系统上使用。
2.2 新建ETW.py主程序文件并安装相应库
本程序