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占位符来填充内容。
相关推荐
摇滚侠3 小时前
Spring Boot 3零基础教程,IOC容器中组件的注册,笔记08
spring boot·笔记·后端
程序员小凯5 小时前
Spring Boot测试框架详解
java·spring boot·后端
你的人类朋友6 小时前
什么是断言?
前端·后端·安全
程序员小凯7 小时前
Spring Boot缓存机制详解
spring boot·后端·缓存
i学长的猫7 小时前
Ruby on Rails 从0 开始入门到进阶到高级 - 10分钟速通版
后端·ruby on rails·ruby
用户21411832636028 小时前
别再为 Claude 付费!Codex + 免费模型 + cc-switch,多场景 AI 编程全搞定
后端
茯苓gao8 小时前
Django网站开发记录(一)配置Mniconda,Python虚拟环境,配置Django
后端·python·django
Cherry Zack8 小时前
Django视图进阶:快捷函数、装饰器与请求响应
后端·python·django
爱读源码的大都督9 小时前
为什么有了HTTP,还需要gPRC?
java·后端·架构
码事漫谈9 小时前
致软件新手的第一个项目指南:阶段、文档与破局之道
后端