python新手小白学习记录:python自动化,根据excel表格批量生成word文档

之前工作中有需要,全网找方法,终于在这篇文章找到了详细的教程,详细教程请跳转这个链接,下面是根据这个链接中的代码进行修改后可用通用的:Python 自动化:根据模板批量生成含指定数据的 word 文档icon-default.png?t=N7T8https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/124762362?spm=1001.2014.3001.5506

作为一个编程纯新手,边看边问ai,跟着上面的步骤基本解决了工作中的问题,后来随着工作内容和需求的增加,不断对程序进行优化,现在可以实现通用效果,下面我分享我的修改,如果有大佬看到了,发现有问题和可以优化的地方,烦请指出,我再学习学习,感谢~

修改:

原文当中是将word文档中需要替换的模板字符串在程序中一一写出来,我有时候需要做多个不同的模板,excel中使用的字段都不一样,每次都要重写程序,非常麻烦,修改代码如下:

1、将excel表格第一行字段放到一个元组里

fields = tuple(data.columns)

2、将表格下面的每行信息作为值放到一个字典里,键是对应的索引

data_dict = {row.name: row.values.tolist() for idx, row in data.iterrows()}

3、获取字典的长度,对应的是表格的行数,即需要生成多少份word文档

num = len(data_dict)

4、循环将读取每个字典的值

i=0
while i<num:
    dict = { field:con for field,con in zip(fields,data_dict[i])}
    tpl.render(dict)
    # 补全生成的 .docx 文件名
    end_docx_file_name = outfiles_path+ r"\{}的通知书.docx".format(dict[list(dict.keys())[0]])
    # 保存生成的 .docx 文件
    tpl.save(end_docx_file_name)
    # 将生成的 .docx 文件追加到一个列表里,为了后期转 pdf 格式使用,我这里是为了后面将所有文件合并成一个PDF文档,如果只需要多个word文档,下面这句代码就不需要了
    end_docx_files_list.append(end_docx_file_name)
    i+=1

5、以下是转 pdf 然后合并 pdf 的步骤(这个步骤太麻烦了,而且会产生多余的pdf文件,我想在不产生pdf文件的情况下合并word文档成为一个pdf文件汇总,我问过ai合并多个word文档然后转化为pdf文件,但是发现有格式错乱的问题,有没有会的大佬教一下~)

merger = PdfMerger()
for file in end_docx_files_list:
    pdf_file = file.replace('.docx', '.pdf')
    convert(file,pdf_file)
    merger.append(open(pdf_file,'rb'))

merger.write(outfiles_all+count+'通知书合集.pdf')
merger.close()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值