网站首页 > 技术文章 正文
介绍
- 本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。
- 本文假设你已经安装了python和这两个库。
- 本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并且奖状需要做成PPT在颁奖大会上电子展示,手上有一份名单 list.xlsx 和 PPT 奖状模板 temp.pptx。
准备工作
- 首先,我们需要导入openpyxl和python-pptx库,以及其他一些辅助库,如下:
Bash
import openpyxl
from pptx import Presentation
from pptx.util import Inches, Pt
import os
- 然后,我们需要定义一些常量,如文件名,字体,颜色等,如下:
Bash
# 文件名
EXCEL_FILE = 'list.xlsx'
PPT_FILE = 'temp.pptx'
OUTPUT_DIR = 'output'
# 字体
FONT_NAME = '微软雅黑'
FONT_SIZE = 36
FONT_COLOR = 'FFFFFF'
# 占位符索引
NAME_INDEX = 0
AWARD_INDEX = 1
DATE_INDEX = 2
- 接下来,我们需要读取Excel文件,获取获奖者的姓名,奖项,以及日期,如下:
# 读取Excel文件
wb = openpyxl.load_workbook(EXCEL_FILE)
ws = wb.active
# 获取获奖者列表
awardees = []
for row in ws.iter_rows(min_row=2, values_only=True):
name, award, date = row
awardees.append((name, award, date))
- 最后,我们需要创建一个输出目录,用来存放生成的PPT文件,如下:
# 创建输出目录
if not os.path.exists(OUTPUT_DIR):
os.mkdir(OUTPUT_DIR)
生成PPT奖状
- 首先,我们需要加载PPT模板文件,获取幻灯片母版,以及占位符对象,如下:
# 加载PPT模板文件
prs = Presentation(PPT_FILE)
# 获取幻灯片母版
slide_layout = prs.slide_layouts[0]
# 获取占位符对象
placeholders = slide_layout.placeholders
- 然后,我们需要遍历获奖者列表,为每个获奖者生成一个PPT奖状,如下:
# 遍历获奖者列表
for name, award, date in awardees:
# 生成一个PPT奖状
slide = prs.slides.add_slide(slide_layout)
# 填充姓名
name_placeholder = slide.placeholders[NAME_INDEX]
name_placeholder.text = name
name_placeholder.font.name = FONT_NAME
name_placeholder.font.size = Pt(FONT_SIZE)
name_placeholder.font.color.rgb = FONT_COLOR
# 填充奖项
award_placeholder = slide.placeholders[AWARD_INDEX]
award_placeholder.text = award
award_placeholder.font.name = FONT_NAME
award_placeholder.font.size = Pt(FONT_SIZE)
award_placeholder.font.color.rgb = FONT_COLOR
# 填充日期
date_placeholder = slide.placeholders[DATE_INDEX]
date_placeholder.text = date
date_placeholder.font.name = FONT_NAME
date_placeholder.font.size = Pt(FONT_SIZE)
date_placeholder.font.color.rgb = FONT_COLOR
- 最后,我们需要保存生成的PPT文件,如下:
# 保存生成的PPT文件
output_file = os.path.join(OUTPUT_DIR, 'awards.pptx')
prs.save(output_file)
总结
- 本文介绍了如何使用openpyxl和python-pptx库来批量制作PPT奖状。
- 本文通过一个实际的场景,演示了如何读取Excel文件,写入PPT文件,以及使用PPT占位符来填充内容。
猜你喜欢
- 2025-05-10 用Python写了一个上课点名系统(附源码)(自制考勤系统)
- 2025-05-10 第12天 | 12天搞定Python,word和pdf
- 2025-05-10 别人都教你DeepSeek做PPT ,我来个狠的,教你用它一键生成软件!
- 2025-05-10 一周学会用python操作excel、word、pdf吗!这篇教会你!拿走不谢
- 2025-05-10 2021年最全Python资料合集(视频+课件+源码资料)
- 2025-05-10 DeepSeek教你怎么制作PPT(怎么利用deepseek制作ppt)
- 2025-05-10 自己编写的PPT悬浮倒计时小工具,python带你玩嗨起来
- 2025-05-10 DeepSeek + Kimi 一键生成 PPT(deepseek + kimi = 一键生成ppt)
- 2025-05-10 太牛了!102个Python实战项目被我扒到了!建议收藏!
- 2025-05-10 绝了!一键用AI生成高颜值动态PPT(附详细步骤+Prompt)
- 06-24Python调用Docker API的使用方式(pycharm docker 调试)
- 06-24青少年Python编程系列28:Python中函数的递归调用
- 06-24python调用sqlite数据库案例(python 调用数据库)
- 06-24【Python机器学习系列】基于Flask来构建API调用机器学习模型服务
- 06-24通过pybind11来实现python调用C++接口(一)
- 06-24Python编程调用Deepseek API创建智能体
- 06-24python多装饰器针对函数、类、方法的调用顺序说明
- 06-24Python Qt GUI设计:Python调用UI文件的两种方法(基础篇—3)
- 270℃Python短文,Python中的嵌套条件语句(六)
- 268℃python笔记:for循环嵌套。end=""的作用,图形打印
- 266℃PythonNet:实现Python与.Net代码相互调用!
- 262℃Python实现字符串小写转大写并写入文件
- 261℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 121℃原来2025是完美的平方年,一起探索六种平方的算吧
- 102℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 96℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- Python调用Docker API的使用方式(pycharm docker 调试)
- 青少年Python编程系列28:Python中函数的递归调用
- python调用sqlite数据库案例(python 调用数据库)
- 【Python机器学习系列】基于Flask来构建API调用机器学习模型服务
- 通过pybind11来实现python调用C++接口(一)
- Python编程调用Deepseek API创建智能体
- python多装饰器针对函数、类、方法的调用顺序说明
- Python Qt GUI设计:Python调用UI文件的两种方法(基础篇—3)
- Python | Django 外部脚本调用 models 数据库
- 自学Python第九天——操作列表(python操作步骤)
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)