Python 操作 PPT 文件:从新手到高手的实战指南

在日常工作和学习中,PPT 是我们展示信息和进行演示的重要工具。无论是制作报告、演讲还是教学课件,PPT 都扮演着不可或缺的角色。然而,当面对大量重复性的 PPT 编辑任务时,手动操作不仅耗时耗力,还容易出错。幸运的是,Python 提供了强大的库来操作 PPT 文件,让我们能够高效地自动化这些任务。

今天,就让我们一起深入学习如何使用 Python 操作 PPT 文件,从基础的幻灯片创建、编辑到高级的样式设置和内容提取,全方位提升你的 PPT 处理能力。

一、Python 操作 PPT 文件的利器:python-pptx

在 Python 生态系统中,python-pptx 是一个专门用于操作 PPT 文件的库。它支持创建、修改和读取 .pptx 格式的 PPT 文件,功能强大且易于使用。通过 python-pptx,我们可以轻松地添加文本、图片、图表,设置样式,甚至提取幻灯片内容。

(一)安装 python-pptx

在开始之前,我们需要先安装 python-pptx 库。打开你的终端或命令提示符,运行以下命令:

pip install python-pptx

安装完成后,你就可以开始使用 python-pptx 来操作 PPT 文件了。

二、创建 PPT 文件

(一)创建一个简单的 PPT

from pptx import Presentation# 创建一个新的 PPT
prs = Presentation()# 添加一个标题幻灯片
title_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "我的第一个 PPT"
subtitle.text = "这是一个用 Python 创建的 PPT"# 保存 PPT
prs.save('example.pptx')

运行上述代码后,你将在当前目录下看到一个名为 example.pptx 的 PPT 文件,其中包含一个标题幻灯片。

(二)添加更多内容

除了基本的标题幻灯片,我们还可以在 PPT 中添加更多内容,如文本框、图片、图表等。

1. 添加文本框
# 添加一个普通幻灯片
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
title_shape = shapes.title
body_shape = shapes.placeholders[1]
title_shape.text = "幻灯片标题"# 添加文本框
tf = body_shape.text_frame
tf.text = "这是第一点内容"
p = tf.add_paragraph()
p.text = "这是第二点内容"
p.level = 1
p.font.bold = True
2. 添加图片
# 添加图片
left = top = Inches(1)
pic = slide.shapes.add_picture('image.jpg', left, top, height=Inches(4))
3. 添加图表
# 添加图表
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPEchart_data = CategoryChartData()
chart_data.categories = ['东', '西', '南', '北']
chart_data.add_series('系列 1', (19.2, 21.4, 16.7, 22.3))x, y, cx, cy = Inches(2), Inches(2), Inches(4.5), Inches(3)
chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
).chart

三、编辑 PPT 文件

(一)修改幻灯片内容

除了创建新的 PPT,我们还可以使用 python-pptx 打开现有的 PPT 文件并进行编辑。

# 打开一个现有的 PPT 文件
prs = Presentation('example.pptx')# 修改第一个幻灯片的内容
slide = prs.slides[0]
title = slide.shapes.title
title.text = "这是修改后的标题"# 保存 PPT
prs.save('example_modified.pptx')

(二)添加样式

python-pptx 提供了丰富的样式设置功能,我们可以对幻灯片中的文本、图片、图表等进行样式设置。

1. 设置文本样式
# 设置文本样式
from pptx.util import Pt
from pptx.enum.text import PP_ALIGN# 添加文本框
tf = body_shape.text_frame
tf.text = "这是第一点内容"
p = tf.add_paragraph()
p.text = "这是第二点内容"
p.level = 1
p.font.bold = True
p.font.size = Pt(14)
p.font.italic = True
p.alignment = PP_ALIGN.CENTER
2. 设置图片样式
# 设置图片样式
pic.width = Inches(5)
pic.height = Inches(3)

四、提取 PPT 文件内容

(一)提取文本内容

除了创建和编辑 PPT,python-pptx 还可以用来提取 PPT 文件中的内容。

# 打开一个现有的 PPT 文件
prs = Presentation('example.pptx')# 提取所有幻灯片的文本内容
for slide in prs.slides:for shape in slide.shapes:try:print(shape.text)except AttributeError:pass

(二)提取图表内容

# 提取图表内容
for slide in prs.slides:for shape in slide.shapes:if shape.has_chart:chart = shape.chartprint(chart.chart_type)print(chart.series[0].name)print(chart.series[0].values)

五、高级应用:生成批量 PPT

(一)批量生成 PPT

python-pptx 的强大之处在于它可以用于自动化生成大量 PPT。例如,我们可以根据一个数据表生成多个 PPT。

import pandas as pd# 读取数据
data = pd.read_excel('data.xlsx')# 遍历数据,生成 PPT
for index, row in data.iterrows():prs = Presentation()title_slide_layout = prs.slide_layouts[5]slide = prs.slides.add_slide(title_slide_layout)title = slide.shapes.titlesubtitle = slide.placeholders[1]title.text = f"文档 {index + 1}"subtitle.text = f"姓名:{row['姓名']}\n年龄:{row['年龄']}\n描述:{row['描述']}"prs.save(f'文档_{index + 1}.pptx')

六、总结

通过本文的介绍,你已经掌握了如何使用 Python 的 python-pptx 库来操作 PPT 文件。无论是创建新的 PPT、编辑现有 PPT,还是提取 PPT 内容,python-pptx 都能轻松应对。此外,结合 Pandas 等库,我们还可以实现批量生成 PPT,大大提高工作效率。

  • 创建 PPT:使用 Presentation() 创建新 PPT,添加标题幻灯片、文本框、图片和图表。
  • 编辑 PPT:打开现有 PPT,修改内容,设置样式。
  • 提取内容:提取 PPT 中的文本和图表内容。
  • 批量生成:结合 Pandas,根据数据表生成多个 PPT。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统设计中的幂等性

1. 基本概念 幂等性(Idempotence)是系统设计中经常提到的概念。如果某个操作执行一次或多次都能产生相同的结果,那么它就是幂等的。2. 代码示例 下面这段代码是幂等的。无论你调用多少次,show_my_button 的最终状态都是False。 de…

Pandas vs Polars Excel 数据加载对比报告

📊 Pandas vs Polars Excel 数据加载对比报告 1. 数据基本情况 数据文件:data.xlsx 数据规模:23,670 行 3 列 字段: case_time:日期/时间 case_name:公司名称(字符串) board:所属板块(字符串) 2. 加载方式与代码 Pandas import pandas as pdfrom tools import…

Kafka 为什么具有高吞吐量的特性?

Kafka 高吞吐量原因:面试题总结 在面试中,Kafka 的高吞吐量设计是高频考点,核心需围绕“架构设计”“存储优化”“网络效率”“资源利用”四个维度展开,以下是结构化总结: 一、核心架构:并行化与分层设计分…

MCP 协议原理与系统架构详解—从 Server 配置到 Client 应用

1. MCP MCP(Model Context Protocol,模型上下文协议)是开发 Claude 模型的(Anthropic)公司推出的一个开放标准协议,就像是一个 “通用插头” 或者 “USB 接口”,制定了统一的规范,不管是连接数据库、第三方…

uniapp安卓真机调试问题解决总结

uniapp安卓真机调试遇到各种连接不上问题: 手机上打开调试数据线不行,换数据线电脑重启手机重启拔出数据线,换个USB插口。

Linux Qt创建和调用so库的详细教程

一、创建so库1.文件-->新建文件或项目-->Library->C Library,如下图2.工程命名为Example3.一直下一步就可以4、工程创建完成,如下图5、删除Example_global.h6、配置.pro文件# 设置输出目录 DESTDIR $$PWD/output #只生成.so文件 CONFIG plugi…

【深度学习】蒙特卡罗方法:原理、应用与未来趋势

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程,深度学习领域研究生必读教材),开始深度学习领域学习,深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…

区块链技术原理(18)-以太坊共识机制

文章目录前言什么是共识?什么是共识机制?共识机制的核心目标共识机制的类型PoW(工作量证明)协议:(2015-2022)PoS(权益证明)协议:(PoS,…

java基础(十五)计算机网络

网络模型概述 为了使得多种设备能通过网络相互通信,并解决各种不同设备在网络互联中的兼容性问题,国际标准化组织(ISO)制定了开放式系统互联通信参考模型(OSI模型)。与此同时,TCP/IP模型作为实际…

idea将服务封装为一个jar包

你使用的是 IntelliJ IDEA 2018,这个版本虽然不是最新的,但完全支持通过 图形化界面 打 JAR 包(无需命令行),非常适合你在公司内部将 Snowflake 模块打包成通用组件。下面我将 手把手、一步一步、图文流程式地教你&…

ZYNQ [Petalinux的运行]

一、下载ubuntu 下载地址很多,这里提供了一个:http://mirrors.aliyun.com/ubuntu-releases/14.04/ 推荐开始浏览器下载之后复制下载链接使用迅雷下载。 二、虚拟机安装Ubuntu vmware中安装Ubutun–这部分不展示 安装ssh sudo apt install openssh-s…

excel 破解工作表密码

破解Excel工作表密码可通过易用宝工具、VBA脚本或修改文件格式实现,具体方法需根据文件类型和密码保护类型选择。 ‌使用易用宝工具(推荐)‌ 适用于Excel 2007及以上版本,操作简便且无需编程基础: 下载安装Excel易用…

Deepseek + RAGFlow 搭建本地知识库问答系统

Deepseek RAGFlow 搭建本地知识库问答系统原因为什么要本地部署RAG模型和微调模型区别本地部署流程1. 下载 ollama ,通过ollama把Deepseek模型下载到本地运行。2. 下载RAGFlow 源代码和 Docker ,通过Docker部署RAGFlow。3. 在RAGFlow中构建个人知识库并…

elementui附件上传自定义文件列表,实现传完即可预览、下载、删除,二次封装el-upload

背景当前 elementui 的文件上传组件在上传完文件之后只支持删除,用户希望可以看到附件信息,还可以预览自己刚刚上传但未提交的文件,还希望可以下载,因为公司的下载功能当前是通过 OnlyOffice 实现了文件格式转换,所以我…

linux的conda配置与应用阶段的简单指令备注

1.新建某虚拟环境 conda create -n 虚拟环境名 pythonPython版本号 (-y)2.退出当前虚拟环境 conda deactivate3.查看当前conda环境下所有的虚拟环境 conda info --envs4.查看conda版本和位置 conda --versionwhich conda5.激活某个conda虚拟环境 conda activate 虚拟环境名

虚拟化技术 ——KVM

一、KVM 技术简介 KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是 Linux 内核原生支持的全虚拟化解决方案,依托 CPU 的硬件虚拟化技术(Intel VT-x/AMD-V)实现高效的虚拟机运行。它将 Linux 内核转…

线程间Bug检测工具Canary

Canary1.Introduction2.Approach2.1.数据依赖分析2.2.线程间依赖分析3.Bug检测4.Evaluation参考文献1.Introduction 主要做跨线程value-flow bug检查,下面代码中两个函数中存在指向关系:1. x→o1x \rightarrow o_1x→o1​, b→o2b \rightarrow o_2b→o2…

AEB 强制来临,东软睿驰Next-Cube-Lite有望成为汽车安全普惠“破局器”

AEB 强制时代正在悄然谱写“普惠安全”的行业底色。日前,备受关注的强制性国家标准《轻型汽车自动紧急制动系统技术要求及试验方法》(以下简称“新国标”)意见征求阶段已经结束。该标准将替代现行国标GB/T 39901-2021,计划于2028年…

css的white-space: pre

用户从别的地方复制的配置文件,粘贴到输入框内,需要保留原始格式发送给后端。核心步骤:### 1. 格式保持机制 - white-space: pre :这是最关键的CSS属性,确保所有空格、制表符、换行符都被保留 - wrap"off" &…

【AI解读源码系列】ant design mobile——Space间距

前言 笔者目前业务主要围绕ant design mobile组件库来交付H5前端工作。 故此出此专栏来解读每一个组件是如何实现的。 本文基于AI来解读Space组件。 文档链接: https://mobile.ant.design/zh/components/space 源码: https://github.com/ant-design/ant-…