一,从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[
|