> 文章列表 > 计算机办公自动化——Python批量生成请假条

计算机办公自动化——Python批量生成请假条

计算机办公自动化——Python批量生成请假条

Python使用openpyxl、docx批量生成请假条

  • 前言
  • 第三方库的安装
  • 示例代码
  • 运行效果

前言

加入你有一个下图所示的表格,需要批量生成他们的请假条,你会选择如何做呢?是一步一步的手打,还是呼唤请假人手打呢?

下面我们来看如何使用Python一键生成所有人的请假条。
计算机办公自动化——Python批量生成请假条

操作系统:windows10 家庭版
开发环境:Pycharm Conmunity 2022.3
解释器版本:Python3.8
第三方库:openpyxl、docx

第三方库的安装

需要安装 openpyxl、docx
你可以参考我的以下文章获取些许帮助:

Python第三方库安装——使用vscode、pycharm安装Python第三方库

示例代码

from openpyxl import load_workbook
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import RGBColor, Pt
from docx.oxml.ns import qn
import osdef request_for_leave(name, department, reason, days, date):doc = Document() # 创建一个Document对象# 设置标题paragraph_1 = doc.add_heading('请 假 条', level=1)# 标题居中对齐paragraph_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTERfor run in paragraph_1.runs:# 以下为添加正文内容run.font.size = Pt(17)  #设置为 17 号字体大小paragraph_3 = doc.add_paragraph()paragraph_3.add_run("    本人")paragraph_3.add_run(name).underline = Trueparagraph_3.add_run(",所在部门")paragraph_3.add_run(department).underline = Trueparagraph_3.add_run(",由于")paragraph_3.add_run(reason).underline = Trueparagraph_3.add_run(",需请假")paragraph_3.add_run(str(days)).underline = Trueparagraph_3.add_run("天。")# 设置下划线paragraph_3.paragraph_format.line_spacing = 1.5paragraph_4 = doc.add_paragraph()paragraph_4.add_run('申请人:')paragraph_4.add_run(name).underline = Trueparagraph_4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT# 添加请假日期sign_date = "{}年{}月{}日".format(date.split('-')[0], date.split('-')[1], date.split('-')[2])paragraph_5 = doc.add_paragraph()paragraph_5.add_run('日期:')paragraph_5.add_run(sign_date).underline = Trueparagraph_5.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT# 遍历在word中留下的空位置,根据对应位置,将请假人的信息添加进其中for paragraph in doc.paragraphs:for run in paragraph.runs:# 统一修改颜色和字体run.font.color.rgb = RGBColor(0, 0, 0)# 黑色字run.font.name = '楷体' #字体设置为楷体r = run._element.rPr.rFontsr.set(qn('w:eastAsia'), '楷体')doc.save(path + "\\{}-请假条.docx".format(name))# 保存请假条,保存名称为  请假人+请假条.docxprint("{}的请假条打印完成!".format(name))if __name__ == '__main__':workbook = load_workbook(r'请假条.xlsx')sheet = workbook.activepath = ".\\\\请假条" # 请假条最后会全部添加至请假条文件夹中n = 0# 遍历excel中一条条的请假信息for row in sheet.rows:if n:# 逐步获取值name = row[0].valuedepartment = row[1].valuereason = row[2].valuedays = row[3].valuedate = str(row[4].value).split()[0]# 将获取到的值在此处传入request_for_leave函数,准备生成请假条request_for_leave(name, department, reason, days, date)n += 1

运行效果

计算机办公自动化——Python批量生成请假条
计算机办公自动化——Python批量生成请假条
计算机办公自动化——Python批量生成请假条
可以看到已经生成了所有人的请假条,如果你想添加更多的内容进去,也可以参考我的进行一些相应的修改