python 批量生成word文件
最近看到有替换word的数据的工具,顺手发一个生成word文件的可以用来批量生成word文件
比如批量填一个什么申请书啊
生成一下各种证书啊
最主要就是减少重复作业
偷懒万岁!!!
具体是用word的mailmerge功能
先制作word模板
点击 插入》文档部件》域
选择邮件合并 输入名称 推荐使用数据的字段名
得到下图模板
现在去随便弄几组数据
我这里用的是csv
看个人喜好吧
贴一下代码
##########################
# 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, data.loc))
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 - 1
i = 1
while i <= rows:
mydict = mk_dict(data, i) #每一行数据都制作成一个字典
sd_data(file_path, mydict,save_path) #发送数据到docx
i+=1
print('Finish')
运行一下
打完收工
附上文件
咳咳 喜欢的话请咳咳DDDD
偷懒万岁!!!
好东西都是懒人发明的 angle951 发表于 2021-8-1 11:06
感谢楼主,这有点离谱啊哈哈哈哈,太能偷懒了
如果你是文秘类工作 给客户发个邀请函 咱这样偷个懒是不是就很香 做完就可以摸鱼 感谢楼主,这有点离谱啊哈哈哈哈,太能偷懒了 木头MT 发表于 2021-8-1 11:09
如果你是文秘类工作 给客户发个邀请函 咱这样偷个懒是不是就很香 做完就可以摸鱼
那傻13学生会也要这些玩意儿,就是拿来做邀请函,系主任鬼迷鬼眼的啥都想要弄
这东西太方便了,一件格式化 tve 这个可以偷。。。 有意思,把邮件合并的分割功能解决了! 收藏了,需要的时候再来 看着就觉得香 office自带的功能,还整那么麻烦?