在我朋友的幼儿园,每学期结束时,发放荣誉证书成了一项重要的活动。整个幼儿园有将近400份荣誉证书需要填写,这通常需要专人花费几天的时间来完成。可这一次我用Python几秒钟就解决了这个难题。
2. 传统方法的局限性耗时:每份奖状的制作至少需要5分钟,总计将近25个小时。重复劳动:工作内容机械重复,效率低下。易出错:手工填写信息容易出现错误。3. Python自动化的解决方案
使用Python自动化办公工具来批量自动化生成PPT版荣誉证书。
4. 如何实现自动化?4.1 准备工作收集信息:整理好所有获奖孩子的名单和相关信息,存储到Excel里。设计模板:在PowerPoint中设计一个奖状模板,包括姓名、学年、时间等可变字段。
Python代码
from pptx import Presentationprs = Presentation('data\荣誉证书模板.pptx')slide = prs.slides.add_slide(prs.slide_layouts[0]) # 第一个模板的第0个板式for ph in slide.placeholders: #遍历这页PPT的所有占位符 phf = ph.placeholder_format #获取占位符的格式 print(phf.idx) #打印其ID编号 ph.text = str(phf.idx)# 将编号写入PPT对应的位置中,以便后面一一对应# 以上读取到占位符的ID方便后面调用prs.save('data\荣誉证书模板-占位符编号.pptx')from openpyxl import load_workbookwb = load_workbook("data\名单.xlsx")ws = wb.activedata={}for row in range(2,ws.max_row+1): class_id = ws['A' + str(row)].value name = ws['B' + str(row)].value data.setdefault(class_id,[]) data[class_id].append(name)import timet0=time.time()# 程序开始运行的时间prs = Presentation('data\荣誉证书模板.pptx')slide_layout = prs.slide_layouts[0] #调用设置好的母版,因为是母版的第一版式,所以取[0]for class_id in data: for name in data[class_id]: slide = prs.slides.add_slide(slide_layout) #以母版的版式为基础新增一页幻灯片 #往幻灯片中写入内容 slide.placeholders[10].text = "{} 班 {} 同学:".format(class_id,name) #此处是班级和姓名 slide.placeholders[11].text = "在2023-2024学年度第一学期获得" slide.placeholders[12].text = "“好孩子”称号。" slide.placeholders[13].text = "特发此证,以资鼓励。" slide.placeholders[14].text = "市幼儿园" slide.placeholders[15].text = "2024年4月"prs.save('data\荣誉证书(总).pptx')t1 = time.time()print('程序用时:',str(round(t1-t0))+'秒。')
零错误:自动化避免了手工填写可能出现的错误。易于调整:未来若要增加或修改奖状内容,只需调整模板和脚本即可。6. 结语
通过这个案例,我们可以看到Python在自动化办公领域的强大潜力。它不仅能帮助我们节省时间,提高效率,还能减少人为错误,提升工作质量。如果你也是一位教育工作者或对自动化办公感兴趣,不妨学习Python,开启高效办公的新篇章!