前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Python自动生成100+员工的请假条,实现高效办公

利用Python自动生成100+员工的请假条,实现高效办公

作者头像
程序员晚枫
发布2023-03-02 16:21:20
4120
发布2023-03-02 16:21:20
举报
文章被收录于专栏:自动化办公自动化办公

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

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

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

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

0、源码下载

本文实战项目的 源代码,领取方式,在下列公众号的后台发送:请假条,即可24小时自动领取~

1、代码实现

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

代码语言:javascript
复制
@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生成请假条。

代码语言:javascript
复制
@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))

-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化办公社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0、源码下载
  • 1、代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档