python实现办公自动化_01_开复工证明

之前一直对python很感兴趣,因为疫情在家里刚好有很多个人时间,于是利用起来学习python的基础知识。最近公司要复工了,需要开“复工证明”,人数还不少,一个个去替换内容,到处pdf格式(模拟扫描件)有些累人,所以想到了用python实现自动化批量“生产”。

一、使用工具:

1.电脑系统linuxmint19.3

2.pycharm

3.安装需要的库docxtpl、pandas;

二、个人需求:

1.内容有名字、身份证号、车牌号、电话号码;

2.需要盖公司的公章;

三、准备工作:

1. 将公司公章做成电子版png格式图片;

2.制作“复工证明”模板;

四、代码:

from docxtpl import DocxTemplate # 用来替换docx文档模板中的值,docx文档模板需要提前设置好接收变量,类似jinjia2
import pandas as pd # 用来读取excel表中的内容
import subprocess # 用来将docx转换成pdf


# 读取excel表
r_excel_path = "./demo.xlsx" # 创建读取路径
df = pd.read_excel(r_excel_path)

# 将每一列的series 转换成列表
name_list = list(df["姓名"])
ID_list = list(df["身份证号码"].astype(str))
plate_number_list = list(df["车牌号码"].astype(str))
phone_list = list(df["电话号码"].astype(str))

# 遍历列表,并将遍历的值传给字典
# for 循环用到zip(看提示,用使用zip,列表中只能是str)
context_dic = {} # 创建字典,用于接收遍历后的值

for name_str, ID_str, plate_number_str, phone_str in zip(name_list, ID_list, plate_number_list, phone_list) :
    context_dic["name"] = name_str
    context_dic["ID"] = ID_str
    context_dic["plate_number"] = plate_number_str
    context_dic["phone_str"] = phone_str

    # 读取docx模板
    tpl = DocxTemplate("复工证明_demo.docx")

    # 将字典的value传递给模板的变量
    tpl.render(context_dic)

    # 保存生成的文档
    tpl.save(f"复工证明_{name_str}.docx")

    # 将docx转换成pdf
    docx_path = f"./复工证明_{name_str}.docx"
    # 用subprocess模块将docx转换成pdf
    subprocess.run([f"libreoffice --convert-to pdf {docx_path}"], shell=True)

本人是程序小白,仅作为自己学习过程的记录,便于以后遗忘时回忆。

附件:(模板图片)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值