计算机办公自动化——Python批量生成请假条

news2024/11/23 20:12:49

Python使用openpyxl、docx批量生成请假条

  • 前言
  • 第三方库的安装
  • 示例代码
  • 运行效果

前言

加入你有一个下图所示的表格,需要批量生成他们的请假条,你会选择如何做呢?是一步一步的手打,还是呼唤请假人手打呢?

下面我们来看如何使用Python一键生成所有人的请假条。
在这里插入图片描述

操作系统:windows10 家庭版
开发环境:Pycharm Conmunity 2022.3
解释器版本:Python3.8
第三方库:openpyxl、docx

第三方库的安装

需要安装 openpyxl、docx
你可以参考我的以下文章获取些许帮助:

Python第三方库安装——使用vscode、pycharm安装Python第三方库

示例代码

from openpyxl import load_workbook
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import RGBColor, Pt
from docx.oxml.ns import qn
import os



def request_for_leave(name, department, reason, days, date):
    doc = Document() # 创建一个Document对象

    # 设置标题
    paragraph_1 = doc.add_heading('请 假 条', level=1)
    # 标题居中对齐
    paragraph_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

    for run in paragraph_1.runs:
        # 以下为添加正文内容
        run.font.size = Pt(17)  #设置为 17 号字体大小
        paragraph_3 = doc.add_paragraph()
        paragraph_3.add_run("    本人")
        paragraph_3.add_run(name).underline = True
        paragraph_3.add_run(",所在部门")
        paragraph_3.add_run(department).underline = True
        paragraph_3.add_run(",由于")
        paragraph_3.add_run(reason).underline = True
        paragraph_3.add_run(",需请假")
        paragraph_3.add_run(str(days)).underline = True
        paragraph_3.add_run("天。")
        # 设置下划线
        paragraph_3.paragraph_format.line_spacing = 1.5
        paragraph_4 = doc.add_paragraph()
        paragraph_4.add_run('申请人:')
        paragraph_4.add_run(name).underline = True
        paragraph_4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
        # 添加请假日期
        sign_date = "{}年{}月{}日".format(date.split('-')[0], date.split('-')[1], date.split('-')[2])
        paragraph_5 = doc.add_paragraph()
        paragraph_5.add_run('日期:')
        paragraph_5.add_run(sign_date).underline = True
        paragraph_5.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT

        # 遍历在word中留下的空位置,根据对应位置,将请假人的信息添加进其中
        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(path + "\{}-请假条.docx".format(name))# 保存请假条,保存名称为  请假人+请假条.docx
        print("{}的请假条打印完成!".format(name))



if __name__ == '__main__':
    workbook = load_workbook(r'请假条.xlsx')
    sheet = workbook.active
    path = ".\\请假条" # 请假条最后会全部添加至请假条文件夹中

    n = 0
    # 遍历excel中一条条的请假信息
    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]
            # 将获取到的值在此处传入request_for_leave函数,准备生成请假条
            request_for_leave(name, department, reason, days, date)
        n += 1

运行效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到已经生成了所有人的请假条,如果你想添加更多的内容进去,也可以参考我的进行一些相应的修改

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

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

相关文章

STM32学习,从点灯开始

大家好,我是程序员小哈。 综合实例:自动洗碗机的分享,上周五的直播完成了核心板的焊接,板子设计好了,也焊接完毕了,那么如何验证是否正确呢,既然是从0到1的教程,那么我们就先实现一…

PyTorch深度学习实战 | 基于深度学习的电影票房预测研究

基于深度学习的映前票房预测模型(Cross&Dense网络结构模型),该模型通过影片基本信息如:电影类型、影片制式、档期和电影的主创阵容和IP特征等信息对上映影片的票房进行预测。 本篇采用451部电影作为训练模型,最后再在194部影片上进行测试…

Spring AOP实现原理

从入口 org.springframework.context.support.AbstractApplicationContext#refresh 开始看 找到Bean的创建方法进入: 再进入详细方法: 找到getBean(beanName): 找到doGetBean(xxx,xxx,xxx,xxx); 找到实际的Bean创建方法createBean(beanName, mdb, args);可以非常明显…

【C++学习笔记】变量和基本类型

2.1 基本内置类型 C中包括 算数类型(arithmetic type) 和 空类型(void) 的数据类型,其中,算数类型包括字符、整型数、布尔值和浮点数;空类型不对应具体的值,当函数不返回值时用void作为返回类型 2.1.1算数类型 对于数组或者字符…

一篇搞定CDH 5.x 核心概念与集群部署

一、概述 1.1 Hadoop发行商 Apache:开源免费 CDH: Clouder公司研发。只支持64位操作系统。更加详细信息后面会介绍。 HDP: Hortonworks公司研发。 1.2 公司常用版本及介绍 apache -> cdh | hdp 常见问题: apache与cdh的比较?&#xf…

在国内怎么玩chatgpt,有可行的gpt游玩攻略么

首先你想玩chatgpt,你要明白一点这是一个国外的软件,所以你懂的,如果你不会魔法,那么就必须要改其他途径去探索游玩咯。今天我们就来探讨一下国内怎么玩chatgpt,可行的gpt游玩攻略。 一.Chatgpt的版本 我们先来认识一…

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

文章目录 61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户61.1 创建用户示例 61.2 查看用户示例 61.3 修改用户61.3.1 修改用户名61.3.2 修改用户示例61.3.3 修改用户密码61.3.4 修改用户密码示例 61.4 删除用户示例 61.5 用户授权示例 61.6 删除用户权限示例 61…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(面试刷题链表相交) 2023.4.24

目录 前言面试题(链表相交)—(保姆级别讲解)分析题目:链表相交代码:算法思想 结束语 前言 本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可,撰写本文章主要目的在于记录自…

LVS负载均衡—DR模式

DR模式的特点 (1)Director Server(调度器) 和 Real Server(节点服务器) 必须在同一个物理网络中。 (2)Real Server可以使用私有地址,也可以使用公网地址。如果使用公网…

零代码平台如何帮助服装企业实现数字化转型?

随着互联网的不断发展,数字化转型已经成为各行各业必须跨越的一道坎,而服装行业也不例外。 但是,服装行业相对于其他行业来说,数字化转型面临着更多的挑战: 生产环节复杂:服装制造涉及到复杂的生产工序&a…

问题定位及解决方案

1.视频沉浸页快速滑动后,必现不能向下划动 复现步骤: 进入视频沉浸页,快速向下划动,滑动到第一页最后一个时,不能再向下划动。 解决步骤: 1.确定请求API: mtop.aliexpress.ugc.feed.video.lis…

Vivado关联第三方编辑器的方法

​Vivado是一个非常强大的工具,但是在一些方面可能不能完全满足我们的需求,比如代码编辑器的功能。幸运的是,Vivado允许我们关联第三方编辑器来扩展其代码编辑器的功能。在本文将介绍如何配置Vivado与第三方编辑器一起使用,并提供…

Pulsar幂等性开发的设计文档

PIP: https://github.com/apache/pulsar/issues/19744 具体设计 每个TC维护一个Map<ClientName,List> terminatedTxnMetaMap&#xff0c;维护每个客户端最新N个事务的状态&#xff0c;事务结束前&#xff0c;会把事务元数据写入这个List里&#xff0c;同时写入一个Compa…

高分辨率光学遥感图像水体分类综述2022.03

本文是Water body classification from high-resolution optical remote sensing imagery: Achievements and perspectives的学习笔记。 相关资源被作者整理到&#xff1a;这里 文章目录 Introduction基本知识 挑战和机遇挑战1. 有限的光谱信息和小场景覆盖2. 形状、大小和分布…

开放原子训练营(第三季)RT-Thread Nano学习营北京站

开放原子训练营&#xff08;第三季&#xff09;RT-Thread Nano学习营北京站学习心得 文章目录 开放原子训练营&#xff08;第三季&#xff09;RT-Thread Nano学习营北京站学习心得RT-Thread简介会议议程介绍RT-Thread Nano介绍RT-Thread Nano实操训练总结 RT-Thread简介 RT-Th…

【网络安全】XXE--XML外部实体注入

XXE XXE定义XML初识菜鸟xml概念初识DTD解答疑虑1&#xff1a;&#xff01;DOCTYPE是干什么用的疑虑2&#xff1a;&#xff01;ELEMENT是干什么用的疑虑3&#xff1a;#PCDATA是干什么用的疑虑4&#xff1a;为什么元素要再次声明类型 内部实体和外部实体的区别内部实体外部实体通…

【Spring篇】DI相关内容

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、setter注入 1.环境准备 2.注入引用数据类型 3.注入简单数据类型 二、构造器注入 1.环境准备 2.构造器注入引用数据类型 3.构造器注入多个引用数据类型 4.构造器注入多个简单数据类型 …

OAuth2学习(实操OAuth微信登录)

文章目录 前言1 OAuth2基本概念2 网站应用微信登录2.1 大概流程2.2 前期准备2.3 将微信登录二维码内嵌到自己页面2.3.1 后端接口编写(向前端提供参数)2.3.2 前端显示二维码页面 2.4 编写回调接口2.4.1 回调接口根据code获取access_token 这个令牌2.4.2 回调接口根据access_toke…

大数据分析工具Power BI(十三):制作占比分析图表

文章目录 制作占比分析图表 一、饼图 二、环形图 三、树状图

赛题解析 | kaggle百万奖金新赛--图书墨水检测大赛

整理自kaggle平台 比赛题目 Vesuvius Challenge - Ink Detection kaggle-图书墨水检测 比赛背景 赫库兰尼姆卷轴中使用的墨水在X射线扫描中不容易显示出来。但我们发现机器学习模型可以检测到它。幸运的是&#xff0c;我们有地面实况数据。自从近300年前发现赫库兰尼姆Papyr…