Python 自动化办公:一键批量生成 PPT

Stata and Python 数据分析

一、导读

在实际工作中,经常需要批量处理Office文件,比如需要制作一个几十页的PPT进行产品介绍时,一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢?Python提供的pptx 包就可以用来自动化处理ppt。

pytho****n-pptx是一个用于创建和编辑Microsoft PowerPoint(.pptx) 文件的Python库。它能够自动生成演示文稿、幻灯片和幻灯片中的内容,如文本、图片、表格和图表。以下是一些常用的python-pptx命令和功能的简介。

(1)安装并导入

python-pptx托管在PyPI上,可以直接使用pip安装然后需要从pptx模块中导入Presentation类来开始创建和编辑PowerPoint演示文稿。

pip install python-pptx
from pptx import Presentation
(2)创建演示文稿

通过创建Presentation对象,导入一个新的PowerPoint演示文稿。

ppt = Presentation()
(3)选择幻灯片布局

在创建新幻灯片之前,可以选择一个幻灯片布局。slide_layouts属性包含了不同的布局选项,可以根据需要选择其中一个。

slide_layout = ppt.slide_layouts[0]
(4)添加新幻灯片

使用add_slide方法添加一个新幻灯片,并传入选定的幻灯片布局。

slide = ppt.slides.add_slide(slide_layout)
(5)设置幻灯片标题和内容

通过获取幻灯片中的titleplaceholders,可以设置标题和内容

title = slide.shapes.title
title.text = "标题"

content = slide.shapes.placeholders[1]
content.text = "内容"
(6)添加图片

使用add_picture方法可以将图片插入到幻灯片中。需要先从 pptx.util 模块中导入Inches,用于在使用python-pptx库创建或编辑 PowerPoint 演示文稿时,以英寸为单位指定对象的位置和大小。例如:

from pptx.util import Inches

left = Inches(1)  # 图片左上角的横向位置
top = Inches(2)   # 图片左上角的纵向位置
width = Inches(3)  # 图片宽度
height = Inches(2) # 图片高度

slide.shapes.add_picture("image.jpg", left, top, width, height)
(7)添加表格

使用add_table方法可以在幻灯片中添加表格,可以指定表格的行数、列数、位置和大小。

from pptx.util import Inches

left = Inches(1)
top = Inches(2)
width = Inches(4)
height = Inches(2)

table = slide.shapes.add_table(rows, cols, left, top, width, height).table
(8)保存 PPT

最后,使用save方法将创建的演示文稿保存为一个文件,以指定的文件名保存在当前工作目录中。

ppt.save("演示文稿.pptx")

二、批量生成PPT

学习完制作 PPT 的一些基础命令后,接着我们来看如何通过读取 Excel 数据批量生成幻灯片。假设需要进行旅游景点的介绍,首先准备填充PPT 的数据,这里收集到了我国十大旅游城市信息,包含城市名,介绍,景点和美食 4 个字段。内容如下:

然后需要在 PPT 中批量插入对应的图片,这里将收集到的十张图片存放在文件夹 “图片” 中。

接着新建一个 PPT 模板,首先打开视图→幻灯片母版,然后选择第一张幻灯片用于制作标题页。第二张幻灯片用于内容的制作:按照顺序依次插入城市、介绍、景点和美食 4 个占位符,并空出相应位置用于后面放置图片,此外根据需要可以对布局和文字进行美化。第三页用于制作结束页,最后保存为“模板” PPT。形式如下:

下面,我们进入实战阶段。具体步骤为:导入相关模板→读取Excel数据→读取PPT模板→制作标题页→制作内容页(插入信息和图片)→制作结束页→保存

import pandas as pd  # 读取数据
import os  # 读取图片
from pptx import Presentation # 制作PPT
from pptx.util import Inches  # 设置位置和大小
data = pd.read_excel("旅游城市.xlsx")  # 读取旅游城市信息
city = data.to_dict('records')  # 将数据转换为字典形式
print(city)

结果如下:

ppt = Presentation("模板.pptx")  # 读取PPT模板
layout = ppt.slide_layouts  # 获取所有幻灯片布局
images = r".\图片"  # 设置图片路径

# 设置标题页
First_slide_layout = ppt.slide_layouts[0] # 使用模板中第一个幻灯片的布局并创建标题页
First_slide = ppt.slides.add_slide(First_slide_layout)
# 设置标题和副标题
title = First_slide.shapes.title
subtitle = First_slide.placeholders[1]
title.text = "十大旅游城市介绍"
subtitle.text = "介绍人:XX"

# 设置中间介绍内容
for x in city:
    # 使用模板中第二个幻灯片的布局制作中间内容
    slide = ppt.slides.add_slide(layout[1])
    # 当前幻灯片中所有的占位符
    placeholders = slide.shapes.placeholders
    for i,j in enumerate(placeholders):
        if i == 0:
            j.text = x["城市"] # 插入城市名
            # 插入图片
            img_path = os.path.join(images, f'{x["城市"]}.jpg')
            left = Inches(1.2)  # 设置图片左上角的横向位置
            top = Inches(2)   # 设置图片左上角的纵向位置
            width = Inches(4)  # 设置图片宽度
            height = Inches(4.5) # 设置图片高度
            j = slide.shapes.add_picture(img_path, left, top, width, height)
        elif i == 1:
            j.text = x["介绍"]  # 插入城市介绍内容
        elif i == 2:
            j.text = x["景点"]  # 插入景点信息
        elif i == 3:
            j.text = x["美食"]  # 插入美食信息

# 设置结尾页
Last_slide_layout = ppt.slide_layouts[2] # 使用模板中第三个幻灯片的布局制作结尾页
Last_slide = ppt.slides.add_slide(Last_slide_layout)
title = Last_slide.shapes.title
title.text = "感谢观看!"

# 保存 
ppt.save("旅游城市介绍.pptx")# 设置标题和副标题

最终制作出的 PPT 效果如下:

感兴趣的小伙伴们还可以根据需要对PPT进行美化,快动手制作吧!

END

如果你想学习编程给大家分享一份Python学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂。如果需要的话直接划到文末免费获得,让我们一起学习!

在这里插入图片描述

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
在这里插入图片描述

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

五、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
在这里插入图片描述

配套600集视频:

在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述
在这里插入图片描述
如果你也想和我一起学习Python,欢迎关注我留个言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/342195.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Simulink|光伏并网逆变器低电压穿越仿真模型

目录 主要内容 模型研究 1.模型总览 2.boost模块 3.Inverter模块 4.控制模块 5.信号模块 结果一览 下载链接 主要内容 该模型为光伏逆变器低电压穿越仿真模型,采用boost加NPC拓扑结构,基于MATLAB/Simulink建模仿真。模型具备中点平衡…

灭火图 - 故障发现和定位的入口

通过深入分析和解决企业在可观测性和稳定性保障方面的挑战,Flashcat 提出了“灭火图”这一关键概念。 灭火图以服务/模块/基础组件/基础设施等为维度,以聚合的视角实时度量某个特定维度的可用性(典型指标包括时延、流量、错误、饱和度&#x…

���恒峰|配网行波型故障预警定位装置:电力系统的守护神

���在电力系统中,设备的正常运行对于保障供电至关重要。而配网行波型故障预警定位装置就是电力系统的守护神,它能够实时监测设备状态,提前发现故障,确保电力供应的稳定。本文将详细介绍配网行波…

Gradle 笔记

Gradle依赖管理(基于Kotlin DSL) **注意:**如果不是工作原因或是编写安卓项目必须要用Gradle,建议学习Maven即可,Gradle的学习成本相比Maven高很多,而且学了有没有用还是另一回事,所以&#xff…

【网络】传输层TCP协议

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

【KD】2023 NeurIPS Does Graph Distillation See Like Vision Dataset Counterpart?

简介 在大规模图数据集上进行GNN训练是一个艰巨的挑战。特别是在增量学习和图结构搜索这些经常需要重复训练的场景中,训练图模型不仅消耗大量时间,还对显存和计算能力提出了严峻要求。最近,图数据集蒸馏/图压缩(Graph Dataset Distillation / Graph Condensation)方法…

Harmony 鸿蒙驱动开发

驱动开发 驱动模型介绍 HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个Host(设备容器&#…

阿里巴巴开源联邦学习框架FederatedScope

5月5日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,声称可以在不共享训练数据的情况下开发机器学习算法,从而保护隐私。,其源代码现已在Apache 2.0许可下发布在GitHub上。 介绍 该平台被描述为一个全面的联邦学习框架&a…

compose部署tomcat

1.部署tomcat 1.1.下载相关镜像tomcat8.5.20 $ docker pull tomcat:8.5.20 1.2 在/data目录下创建tomcat/webapps目录 mkdir -p /data/tomcat/webapps 注意:这里是准备将宿主机的/data/tomcat/webapps映射到容器的 /usr/…

Oracle篇—分区表和分区索引的介绍和分类(第一篇,总共五篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

ChatGPT 引导语写法参考(翻译类引导语)

充当英语翻译和改进者 我想让你充当英文翻译员、拼写纠正员和改进员。我会用任何语言与你交谈,你会检测语言,翻译它并用我的文本的更正和改进版本用英文回答。我希望你用更优美优雅的高级英语单词和句子替换我简化的 A0 级单词和句子。保持相同的意思&am…

顶顶通呼叫中心中间件利用自动外呼进入机器人的压力测试配置流程

文章目录 前言呼入进入机器人配置流程呼入配置创建线路创建线路组创建自动外呼任务1. 实现“一端放音,另一端进入机器人”操作创建拨号方案—“模拟放音”呼叫路由—“internal”启用拨号方案—“模拟放音”队列外呼配置 2. 实现“两端都进入机器人”操作队列外呼配…

JavaWeb会议管理系统

相关技术: Servlet Tomcat jsp MySQL 有需要的可以联系我。 功能介绍: 会员管理系统:系统管理、用户管理、角色管理、菜单管理、日志管理、部门管理 会议管理:会议室管理、我的会员、会员纪要、修改密码、安全退出 会议室管…

C/C++读写文件和stringstream类

目录 C处理文件打开文件两种函数的区别 读文件两种函数区别其它读操作的函数fgetc:从文件中读取一个字符fgets:从文件中读取一个字符串fscanf:按格式从文件中读取指定内容,与scanf函数类似 写文件其它的常用写操作函数fputc&#…

【网站项目】基于SSM的263货物进销管理系统

🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Java项目:基于ssm框架实现的电影评论系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm826基于ssm框架实现的电影评论系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#x…

Elasticsearch:2023 年 Lucene 领域发生了什么?

作者:来自 Elastic Adrien Grand 2023 年刚刚结束,又是 Apache Lucene 开发活跃的一年。 让我们花点时间回顾一下去年的亮点。 社区 2023 年,有: 5 个次要版本(9.5、9.6、9.7、9.8 和 9.9),1 …

【CSP-J/S】复赛注意事项 上机文件组织形式

每年 CSP-J/S 复赛都有很多同学因为一些小失误导致一年的努力付之东流。Tony老师整理了一些复赛容易踩坑的点,或许对你有帮助! 一、文件的输入输出 CSP、NOIP复赛与我们平时在Online Judge做题形式会有一些区别,需要我们将文件放入规定的地…

基于模糊PID控制器的风力温度控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 模糊逻辑控制原理 4.2 PID控制原理 4.3 模糊PID控制器原理 4.4 整体系统概述 5.完整工程文件 1.课题概述 当房间的温度不能保持目标温度时,这个系统中的某个部件肯定出现问题了&#x…

flink学习之窗口处理函数

窗口处理函数 什么是窗口处理函数 Flink 本身提供了多层 API,DataStream API 只是中间的一环,在更底层,我们可以不定义任何具体的算子(比如 map(),filter(),或者 window()),而只是…