• python-docx办公自动化批量生成离职证明


    关注公众号:Python Lab

    首先,在网络找到这样一份模板内容,可以根据这么模板进行排版
    在这里插入图片描述
    这是存放在Excel中的数据,根据数据遍历其中的内容,写入word当中

    在这里插入图片描述

    完整代码实现

    from docx import Document
    import pandas as pd
    import datetime as dt
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT  # 设置对象居中
    from docx.shared import Pt, Inches  # Pt磅 Inches英寸
    from docx.oxml.ns import qn  # 中文字体
    
    doc = Document()
    
    data = pd.read_excel('./excel.xlsx')
    
    datetime = dt.datetime.now()  # 当前时间
    datetime_now = str(datetime.year) + '年' + str(datetime.month) + '月' + str(datetime.day) + '日'
    
    for i in data['序号']:
        name = str(data.iloc[i - 1, 1])
        join_date = str(data.iloc[i - 1, 2])
        position = str(data.iloc[i - 1, 3])
        reason = str(data.iloc[i - 1, 4])
        off_date = str(data.iloc[i - 1, 5])
    
        # 标题
        paragraph1 = doc.add_paragraph()  # 增加一个段落
        paragraph1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
        title = paragraph1.add_run('离职证明')  # 给段落写上一个块,添加文字 标题
        title.font.name = 'Arial'  # 英文字体
        title.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
        title.font.size = Pt(18)
        title.font.bold = True  # 加粗
        paragraph1.space_after = Pt(5)  # 段前
        paragraph1.space_before = Pt(5)  # 段厚
    
        # 正文
        paragraph2 = doc.add_paragraph()  # 增加一个段落,这个段落是正文
        content = paragraph2.add_run(
            f'慈证明,{name} 同志,自 {join_date} 入职我公司,担任 {position} 岗位,至 {off_date}{reason} 原因申请离职,在此工作期间无'
            f'不良表现,工作良好,同事关系融洽。经公司慎重考虑批准离职,已办理交接手续\n')  # 给段落写上一个块,添加文字
        content.font.name = 'Arial'  # 英文字体
        content.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
        paragraph2.paragraph_format.first_line_indent = Inches(0.4)  # 首行缩进0.4英寸
    
        # 说明
        paragraph3 = doc.add_paragraph()  # 增加一个段落
        illustration = paragraph3.add_run('特此证明。\n\n\n')  # 给段落写上一个块,添加文字
        illustration.font.name = 'Arial'  # 英文字体
        illustration.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
        paragraph3.paragraph_format.first_line_indent = Inches(0.4)  # 首行缩进0.4英寸
    
    
        # 日期
        paragraph4 = doc.add_paragraph()
        datetime = paragraph4.add_run('测试有限公司\n')
        datetime.font.name = 'Arial'  # 英文字体
        paragraph4.paragraph_format.first_line_indent = Inches(4)  # 首行缩进0.4英寸
    
        # 日期
        paragraph5 = doc.add_paragraph()  # 增加一个段落
        datetime = paragraph5.add_run(f'日期: {datetime_now}')  # 给段落写上一个块,添加文字
        datetime.font.name = 'Arial'  # 英文字体
        datetime.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
        datetime.font.size = Pt(14)
        datetime.font.bold = True  # 加粗
        paragraph5.paragraph_format.first_line_indent = Inches(3.9)  # 首行缩进0.4英寸
    
        doc.add_page_break()  # 增加分页符
    
    doc.save('./离职证明.docx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    效果
    在这里插入图片描述

  • 相关阅读:
    Win11 22H2如何创建开始菜单文件夹?
    LINUX 网络管理
    使用icacls命令设置目录及其子目录、文件的所有权限
    React组件开发-仿哔哩哔哩移动端首页
    阿里图标库在旧有的iconfont中添加新的图标
    环路与快速破环
    排序算法(一)
    【Java-LangChain:面向开发者的提示工程-8】聊天机器人
    Java JSON字符串转换成JSON对象
    交叉编译QT报错问题
  • 原文地址:https://blog.csdn.net/weixin_55323831/article/details/133187864