首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用Python自动生成请假条,实现高效摸鱼

大家好,这里是程序员晚枫,今天和大家一起做一个Python自动化办公的案例。

先说一下需求,假如你是公司的底层小虾米,前段时间收集了公司各个部门的请假信息汇总表如下:

现在你需要根据表格中每个人的信息依次生成各自的请假条如下:

本文涉及的技术:openpyxl、python-docx

0、源码下载

1、代码实现

首先使用openpyxl,循环读取Excel中的员工信息。

@RunTime

def read_excel_python_office():

path = r'./晚枫的Excel员工文件.xlsx' # 路径为Excel 北件所在的位置,可按实际待况更改

workbook = load_workbook(path)

sheet = workbook.active

n = 0

for row in sheet.rows:

if n:

name = row[0].value

department = row[1].value

reason = row[2].value

days = row[3].value

date = str(row[4].value).split()[0]

print(date)

if date != 'None':

request_for_leave_wanfeng(name, department, reason, days, date)

n += 1

其次使用python-docx生成请假条。

@RunTime

def request_for_leave_wanfeng(name, department, reason, days, date):

doc = Document()

heading_1 = '请假条'

paragraph_1 = doc.add_heading(heading_1, level=1) # 居中对芳

paragraph_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 标题要打,单独修改教大字号

for run in paragraph_1.runs:

run.font.size = Pt(17)

word_1 = " 本人"

word_2 = ",所在部门"

word_3 = ",由于"

word_4 = ",需请假"

word_5 = "天。"

paragraph_3_python_office = doc.add_paragraph()

paragraph_3_python_office.add_run(word_1)

paragraph_3_python_office.add_run(name).underline = True

paragraph_3_python_office.add_run(word_2)

paragraph_3_python_office.add_run(department).underline = True

paragraph_3_python_office.add_run(word_3)

paragraph_3_python_office.add_run(reason).underline = True

paragraph_3_python_office.add_run(word_4)

paragraph_3_python_office.add_run(str(days)).underline = True

paragraph_3_python_office.add_run(word_5)

# 设置下划线

paragraph_3_python_office.paragraph_format.line_spacing = 1.5

word_6 = '申请人:'

paragraph_4_python4office_cn = doc.add_paragraph()

paragraph_4_python4office_cn.add_run(word_6)

paragraph_4_python4office_cn.add_run(name).underline = True

paragraph_4_python4office_cn.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT

word_7 = '日期:'

sign_date = "{}年{}月{}日".format(date.split('-')[0], date.split('-')[1], date.split('-')[2])

paragraph_5_python_office_com = doc.add_paragraph()

paragraph_5_python_office_com.add_run(word_7)

paragraph_5_python_office_com.add_run(sign_date).underline = True

paragraph_5_python_office_com.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT

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.rFonts

r.set(qn('w:eastAsia'), '楷体')

doc.save(r".\python-office\{}-请假条-BY-程序员晚枫.docx".format(name))

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221230A02WRC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券