Python办公神器:教你使用python批量制作PPT

Python办公神器:教你使用python批量制作PPT

介绍

  • 本文将介绍如何使用openpyxlpptx库来批量制作PPT奖状。
  • 本文假设你已经安装了python和这两个库。
  • 本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并且奖状需要做成PPT在颁奖大会上电子展示,手上有一份名单 list.xlsx 和 PPT 奖状模板 temp.pptx

准备工作

  • 首先,我们需要导入openpyxlpython-pptx库,以及其他一些辅助库,如下:
python 复制代码
import openpyxl
from pptx import Presentation
from pptx.util import Inches, Pt
import os
  • 然后,我们需要定义一些常量,如文件名,字体,颜色等,如下:
python 复制代码
# 文件名
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文件,获取获奖者的姓名,奖项,以及日期,如下:
python 复制代码
# 读取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文件,如下:
python 复制代码
# 创建输出目录
if not os.path.exists(OUTPUT_DIR):
    os.mkdir(OUTPUT_DIR)

生成PPT奖状

  • 首先,我们需要加载PPT模板文件,获取幻灯片母版,以及占位符对象,如下:
python 复制代码
# 加载PPT模板文件
prs = Presentation(PPT_FILE)

# 获取幻灯片母版
slide_layout = prs.slide_layouts[0]

# 获取占位符对象
placeholders = slide_layout.placeholders
  • 然后,我们需要遍历获奖者列表,为每个获奖者生成一个PPT奖状,如下:
python 复制代码
# 遍历获奖者列表
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文件,如下:
python 复制代码
# 保存生成的PPT文件
output_file = os.path.join(OUTPUT_DIR, 'awards.pptx')
prs.save(output_file)

总结

  • 本文介绍了如何使用openpyxlpython-pptx库来批量制作PPT奖状。
  • 本文通过一个实际的场景,演示了如何读取Excel文件,写入PPT文件,以及使用PPT占位符来填充内容。
相关推荐
keep one's resolveY9 分钟前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
阿丰资源2 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
IT_陈寒2 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端
消失的旧时光-19433 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
追风筝的人er4 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
前端·vue.js·后端
金銀銅鐵5 小时前
[git] 如何丢弃对一个文件的改动?
git·后端
橘子海全栈攻城狮5 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
smallyoung5 小时前
具有反思能力的 Agentic RAG 实战:用 LangChain4j 实现 CRAG 纠错检索
人工智能·后端
EthanYuan5 小时前
💡RAG实践:从云知识库迁移到PostgreSQL ,并使用PGVector实现向量存储
后端
直奔標竿6 小时前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring