python制作奖状,从excel表格中导出数据,取前20名,做成png奖状,再放入ppt中

本文介绍如何使用Python从Excel表格中提取数据,选取成绩前20名和进步最快的20名学生,生成PNG奖状,并整合到PPT中。涉及到的数据处理包括成绩排名、进步率计算以及奖状模板的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,从excel表格中提取所有学生姓名,班级,成绩数据
二,按要求筛选学生名单,优秀学生选成绩前20名,如有并列,也制作奖状;进步奖学生取进步率前20名,如有并列,也制作奖状,进步率为:(本周成绩-上周成绩)/上周成绩
三,生成所有做奖状的学生名单,放入excel表格
四,为符合条件的每位学生制作png形式的奖状
五,将每个班级的奖状放到同一个ppt中

奖状图片模板以及excel的格式如下图所示:
在这里插入图片描述
在这里插入图片描述
请大家多多指教,代码如下:

// A code block
// An highlighted block
##### 本版本是ppt版 #####
import datetime, time, pptx
import pandas as pd  # 数据处理
from docx.shared import RGBColor
from PIL import Image, ImageDraw, ImageFont
from pptx.util import Inches


# 用户选择奖状类型
def tesSpecies():
    while True:
        info = input('请选择您要打印的奖状种类【1(优秀奖状);2(进步奖状)】请输入‘1’或‘2’:')
        if info == '1':
            info = '优秀奖状'
            break
        elif info== '2':
            info = '进步奖状'
            break
        else:
            print('您输入的格式不正确,请重新输入')
    return info

# 用户选择成绩周期week,第几周的成绩数据
def week():
    while True:
        week = input('请输入成绩周期(例如:第十一周):')
        if week is None:
            print('您未输入内容,请重新输入')
        else:
            break
    return week


# 用户输入存储成绩数据的excel文件
def filename():
    while True:
        filename = input('请输入存放成绩数据的文件名称(例如:x.xls)')
        if filename.endswith('.xls') is False:
            print('输入的文件类型必须是excel表格,请重新输入')
        else:
            break
    print('请稍等,奖状制作中......')
    return filename

# 优秀奖状-从文件中提取所有学生信息,并按总成绩排序
def goodFileName(file, sheetName, columnName, sortColumn):
    products = pd.read_excel(file, sheet_name=sheetName, usecols=columnName)  # 数据类型为frame.DataFrame
    # 按‘综合成绩’降序排列,取前20名,tail(n)为取尾n行
    students = products.sort_values(by=sortColumn, ascending=False)
    return students

# 进步奖状-从文件中提取所有学生信息,并按进步率排序
def progressFileName(file, sheetName, columnName):
    products = pd.read_excel(file, sheet_name=sheetName, usecols=columnName)
    # 增加’进步率‘列,按'进步率‘排列,tail(n)为取尾n行
    products['进步率'] = products.apply(lambda x: (x['综合成绩'
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值