最近看到有替换word的数据的工具,顺手发一个生成word文件的
可以用来批量生成word文件
比如批量填一个什么申请书啊
生成一下各种证书啊
最主要就是减少重复作业
偷懒万岁!!!
具体是用word的mailmerge功能
先制作word模板
点击 插入》文档部件》域
选择邮件合并 输入名称 推荐使用数据的字段名
得到下图模板
现在去随便弄几组数据
我这里用的是csv
看个人喜好吧
贴一下代码
[Python] 纯文本查看 复制代码 ##########################
# author: mtou #
##########################
from mailmerge import MailMerge
import pandas as pd
def rd_data(file_path):
data=pd.read_csv(file_path, encoding='gbk',header=None) # 读取取csv文件 且读取中文
return data
def mk_dict(data,i):
d = dict(zip(data.loc[0], data.loc[i]))
return d
def sd_data(file_path,data_dict,save_path):
doc = MailMerge(file_path)
print("Fields included in {}: {}".format(file_path, doc.get_merge_fields()))
doc.merge(**data_dict)
save_path = save_path + "%s.docx" % data_dict['name']
doc.write(save_path)
print('Saved file to the path :%s'%save_path)
return save_path
if __name__ == '__main__':
file_path=r'模板.docx' #模板路径
save_path=r'请假条/' #文件保存路径
data_path=r'data.csv' #数据文件路径
data=rd_data(data_path)
rows = data.shape[0] - 1
i = 1
while i <= rows:
mydict = mk_dict(data, i) #每一行数据都制作成一个字典
sd_data(file_path, mydict,save_path) #发送数据到docx
i+=1
print('Finish')
运行一下
打完收工
附上文件
请假条.zip
(10.91 KB, 下载次数: 177)
咳咳 喜欢的话请咳咳DDDD
偷懒万岁!!!
|