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

news2024/10/6 12:20:15

关注公众号: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')

效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqlmap tamper脚本编写

文章目录 tamper脚本是什么?指定tamper脚本运行sqlmap安全狗绕过tamper脚本 tamper脚本是什么? SQLMap 是一款SQL注入神器,可以通过tamper 对注入payload 进行编码和变形,以达到绕过某些限制的目的。但是有些时候,SQLM…

SLAM从入门到精通(参数处理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在编写ros程序的过程中,很多时候需要不停修改程序的参数。比如说,我们有一个配置文件。在程序还没有运行之前,我…

实至名归!优维科技荣膺NIISA联盟2022年度双项技术创新奖

日前,国家互联网数据中心产业技术创新战略联盟(以下简称:NIISA联盟)2022年度技术创新奖评选结果公布!经过激烈角逐,优维科技脱颖而出,荣膺双项大奖! “EasyCore—CMDB超融合数据库”…

移植FreeRTOS的STM32F103双轮平衡小车(开源,代码文末)

耗时大概三四天吧,主要时间还是花在硬件方面上, ps:之前因为还想再完善一点,就一直放在草稿里,并不是今天才写的。面试官看到希望理解。。。 引言 1、系统概述 1.1、设计任务 利用stm32f103作为主控,移…

JavaSE List

目录 1 预备知识-泛型(Generic)1.1 泛型的引入1.2 泛型类的定义的简单演示 1.3 泛型背后作用时期和背后的简单原理1.4 泛型类的使用1.5 泛型总结 2 预备知识-包装类(Wrapper Class)2.1 基本数据类型和包装类直接的对应关系2.2 包装类的使用,装…

【C++面向对象侯捷下】2.转换函数 | 3.non-explicit-one-argument ctor

文章目录 operator double() const {} 歧义了 标准库的转换函数

美创科技参编《数字政府建设与发展研究报告(2023)》 正式发布

9月14日,中国信息通信研究院云计算与大数据研究所牵头编制的《数字政府建设与发展研究报告(2023)》正式发布。 美创科技结合在政务数据安全领域的丰富实践经验,参与报告编写。 《数字政府建设与发展研究报告》 以“技术、业务、数…

2023工博会强势回归!智微工业携八大系列重磅亮相

中国国际工业博览会(简称"中国工博会")自1999年创办以来,历经二十余年发展创新,通过专业化、市场化、国际化、品牌化运作,已发展成为通过国际展览业协会(UFI)认证、中国工业领域规模最…

flex布局与float布局

float布局 俩栏 三栏 flex布局

Leetcode199. 二叉树的右视图

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 题解:力扣(LeetCode&#xff09…

大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统

国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。 面对大型集团全球化的管理诉求,数字化办公系统作为集…

虚拟机部署linux网络连接配置

1、虚拟机安装linux后,配置网络访问 虚拟机网络设置为NAT模式 linux网络配置好IP,主要是以下网络配置 2、linux没有ifconfig命令,ifconfig命令是在net-tools.x86_64包里 yum install net-tools.x86_64安装

207.Flink(二):架构及核心概念,flink从各种数据源读取数据,各种算子转化数据,将数据推送到各数据源

一、Flink架构及核心概念 1.系统架构 JobMaster是JobManager中最核心的组件,负责处理单独的作业(Job)。一个job对应一个jobManager 2.并行度 (1)并行度(Parallelism)概念 一个特定算子的子任务(subtask)的个数被称之为其并行度(parallelism)。这样,包含并行子任…

八大排序(四)--------直接插入排序

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

蓝桥杯每日一题2023.9.22

4960. 子串简写 - AcWing题库 题目描述 题目分析 原本为纯暴力但是发现会超时,可以加入前缀和,从前往后先记录一下每个位置c1出现的次数 再从前往后扫一遍,如果遇到c2就将答案加上此位置前的所有c1的个数(直接加上此位置的前缀…

Mybatis学习笔记4 用javassist动态实现DAO接口基于接口的CRUD

Mybatis学习笔记3 在Web中应用Mybatis_biubiubiu0706的博客-CSDN博客 上篇最后在DAO实现类中,代码固定,没有业务逻辑,这篇笔记中对该实现类进行封装,就是说,以后不用写DAO实现类了 我们不难发现,这个dao实现类中的⽅法代码很固定,基本上就是⼀⾏代码&am…

【面试经典150 | 双指针】三数之和

文章目录 写在前面Tag题目来源题目解读解题思路方法一:暴力枚举方法二:双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对…

AIGC|从革新内容创作到社会共识建立,迎接全新技术维度

在人工智能的巨浪之下,我们身临一场前所未有的文化演变,一股革命性的力量正在重新定义我们的创造性边界。这股力量不是人类的智慧,而是人工智能生成内容(AIGC)技术,它正以前所未有的速度和广度改变着我们的…

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技

备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…

数字赋能 融链发展 ——2023工博会数字化赋能专精特新“小巨人”企业高质量发展论坛顺利举行

编者按:2023年政府工作报告提出“加快传统产业和中小企业数字化转型”要求,按照《“十四五”促进中小企业发展规划》《关于开展中小企业数字化转型城市试点工作的通知》等文件的部署,通过开展城市试点,支持地方政府综合施策&#…