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

关注公众号:Python Lab

首先,在网络找到这样一份模板内容,可以根据这么模板进行排版
python-docx办公自动化批量生成离职证明_第1张图片
这是存放在Excel中的数据,根据数据遍历其中的内容,写入word当中

python-docx办公自动化批量生成离职证明_第2张图片

完整代码实现

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')

效果
python-docx办公自动化批量生成离职证明_第3张图片

你可能感兴趣的:(办公自动化,python,开发语言,word)