[Python][RPA]办公自动,根据成绩汇总表生成每个学生成绩单

背景

根据学生成绩汇总表,生成每个学生的成绩单,假设一个高校有5000人,需要生成5000份成绩单,每个成绩单如果有10个数据,这就是50000个数据,而且单条数据规律性低,如果通过人工生成所有学生成绩单将是一个重复性高、数据量大、技术含量低的场景;借助工具,既能速度快、准确率高,还能降低人力成本浪费;

所需文件及其布局:

在这里插入图片描述
文件解读:
result文件夹:用于存放生成每个学生的成绩单;
demo1.py : 可以执行的文件;
xx大学成绩汇总.xls:成绩表包含着每个学生的成绩及其他信息;
成绩单demo.docx:成绩单的模板;

文件内容

xx大学成绩汇总.xls
在这里插入图片描述
成绩单demo.docx
在这里插入图片描述

全部代码:

import xlrd
from mailmerge import MailMerge
from datetime import datetime

# 按行读取数据
def read_excel(path):
    # 打开工作薄
    workbook = xlrd.open_workbook(path)
    # 获取第一个sheet表格
    table = workbook.sheets()[0]
    # 获取行数
    rows = table.nrows
    # 循环获取每行的数据
    row_datas = []
    for row in range(1, rows):
        row_data = table.row_values(rowx=row, start_colx=0, end_colx=None)
        row_datas.append(row_data)
    return row_datas


def gen_doc(template, infos):
    for info in infos:
        print(f"正在处理:{str(info[0])}")
        document = MailMerge(template)
        document.merge(name=str(info[0]),
                       sex=str(info[1]),
                       id=str(info[2])[:-2],
                       addr=str(info[3]),
                       zz=str(info[4]),
                       sx=str(info[5]),
                       yy=str(info[6]),
                       date=str(datetime.now().date()))
        document.write('./result/XX大学学生成绩单' + info[0] + '.docx')

if __name__ == '__main__':
    print("start")
    path_excel = r'xx大学成绩汇总.xls'
    template = '成绩单demo.docx'
    infos = read_excel(path_excel)
    gen_doc(template, infos)
    print("end")

结果:
在这里插入图片描述
内容:
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔都吴所谓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值