iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用python-pptx操作PPT的示例详解
  • 867
分享到

使用python-pptx操作PPT的示例详解

python-pptx操作PPTpython-pptx PPT 2023-01-12 12:01:38 867人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1. PPT基本结构在python-pptx下定义1.1. 演示文档结构定义1.2. 自定义幻灯片母版2. Python-pptx操作PPT实践2.1. 安装python-ppt

python对PPT演示文档读写,是通过第三方库python-pptx实现的,python-pptx是用于创建和更新 PowerPoint(.pptx)文件的 Python 库。

关于PPT演示文档与幻灯片模板的内容不是本文的重点,在此略过。

1. PPT基本结构在python-pptx下定义

1.1. 演示文档结构定义

python-pptx对ppt结构的描述如下图所示,演示文档由多个幻灯片(slide)构成,每个幻灯片由众多各种形状(shape)组成。

  • Slide:幻灯片,就是演示文稿中每一页的页面。
  • Shape:形状,在每页幻灯片内插入的方框,可以是形状,也可以是文本框、图片、表格等等。
  • Run:文字块,一般为较少字符。
  • Paragraph:段落,通常有序号ㆍ、1.等。

图示演示文档,如下图所示,由3页幻灯片(slide)构成,其中,第三页幻灯片中的形状(shape)分别是“标题 1”(Title 1)和“图片”(Picture Placeholder 2)组成。

1.2. 自定义幻灯片母版

使用程序生成演示文档,最好先自定义幻灯片母版,如下图所示,定义4页模板(slide_layouts)。

注意:shape名称在office软件下,是中文,而程序读出来的可能是英文!

对于母版内容:

Slides_layouts:版式,一个幻灯片母版由多个版式组成,索引从0开始。

slide_layouts[]传入0表示获取的是第一个版式,传入1表示获取的是第二个版式

Placeholder:占位符:存在PPT母版里面的幻灯片的某一部件:Placeholder

2. python-pptx操作PPT实践

2.1. 安装python-pptx

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

2.2. 读取PPT演示文档

from pptx import Presentation

# 打开演示文档
prs = Presentation('加油站全流程诊断大数据系统.pptx')
for slide in prs.slides:
    print(slide)

# 写入新文件中 
prs.save('test.pptx')

# 获取某一页Slide中的内容

for i, slide in enumerate(prs.slides):
    if i == 3:
        for shape in slide.shapes:
            if shape.has_text_frame:
                text_frame = shape.text_frame
                print(text_frame.text) 

2.3. 基于模板创建新的演示文档

这里所说模板仍然是pptx文件,不是PPT的模板(potx),python-pptx无法读取potx模板。也是说,使用仅有一页,并且无内容的空演示文档,内含自定义幻灯片母版,如前面所述的母版样例。

创建新演示文档过程如下:

  • 首先,修改首页内容,例如主题和副主题
  • 接着,按实际要求,使用具体模板,也就是slide_layouts

代码过程如下:

from pptx import Presentation
from PIL import Image

im=Image.open('d:\\02资料\\ai无感加油.png')

# 修改首页
prs= Presentation('template_1.pptx')
slide = prs.slides[0]
title = ['油站全流程诊断输出测试页',
        '测试页副标题']
for i, shape in enumerate(slide.shapes):
    if shape.has_text_frame:
        text_frame = shape.text_frame
        text_frame.text = title[i]

# 插入内容测试
slide = prs.slides.add_slide(prs.slide_layouts[1])  # 用第一个母版生成一页ppt
for shape in slide.placeholders:         # 获取这一页所有的占位符
    phf = shape.placeholder_fORMat
    print(f'{phf.idx}--{shape.name}--{phf.type}')
    print('shape name ', shape.name)
    if shape.name ==  'Title 1':
        shape.text = f'目标'  #在标题占位符中填写“目标”
    else:
        shape.text = f'内容'  #在其他占位符中填写“内容”        
        
# 插入图片测试
im.save('tmp.png') #从外部(数据库)读取的图片,临时存储
slide = prs.slides.add_slide(prs.slide_layouts[2])  # 用第一个母版生成一页ppt
for shape in slide.placeholders:         # 获取这一页所有的占位符
    phf = shape.placeholder_format
    print(f'{phf.idx}--{shape.name}--{phf.type}')
    print('shape name ', shape.name)
    if shape.name ==  'Title 1':
        shape.text = f'插入图片测试'  #在标题占位符中填写“目标”
    else:
        shape.insert_picture('tmp.png')  #在其他占位符中填写“图片”
        
prs.save('向占位符内填写内容_1.pptx')

附加内容:列出对象属性。

for i, shape in enumerate(slide.shapes):
    print('对象类型', shape.shape_type)
    print('对象属性列表', dir(shape))

shape部分属性列表:

  • ‘has_chart’,
  • ‘has_table’,
  • ‘has_text_frame’,
  • ‘height’,
  • ‘is_placeholder’,
  • ‘name’,
  • ‘part’,
  • ‘placeholder_format’,
  • ‘shape_id’,
  • ‘shape_type’,
  • ‘text’,
  • ‘text_frame’,
  • ‘top’,
  • ‘width’

3. 小结

对于数据分析结果规范化输出,python-pptx功能基本满足,使用条件是精通PPT,设计出合适的母版,供程序交互使用。

以上就是使用python-pptx操作PPT的示例详解的详细内容,更多关于python-pptx操作PPT的资料请关注编程网其它相关文章!

--结束END--

本文标题: 使用python-pptx操作PPT的示例详解

本文链接: https://www.lsjlt.com/news/177526.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用python-pptx操作PPT的示例详解
    目录1. PPT基本结构在python-pptx下定义1.1. 演示文档结构定义1.2. 自定义幻灯片母版2. python-pptx操作PPT实践2.1. 安装python-ppt...
    99+
    2023-01-12
    python-pptx操作PPT python-pptx PPT
  • Python利用pptx操作PPT实现幻灯片的删除与替换
    目录一、原理二、操作流程三、代码一、原理 通过查找ppt中的图片指纹替换 二、操作流程 原始ppt如下: 根据oldpic.png的md5指纹 找到图片 if md5img ==...
    99+
    2023-02-03
    Python PPT幻灯片删除替换 Python PPT幻灯片删除 Python PPT幻灯片替换 Python PPT
  • go操作Kafka使用示例详解
    目录1. Kafka介绍1.1 Kafka是什么1.2 Kafka的特点1.3 常用的场景1.4 Kafka中包含以下基础概念1.5 消息1.6 消息格式2. Kafka深层介绍2....
    99+
    2022-12-08
    go操作Kfaka go Kfaka
  • 利用Python自动生成PPT的示例详解
    在日常工作中,PPT制作是常见的工作,如果制作创意类PPT,则无法通过自动化的形式生成,因为创意本身具有随机性,而自动化解决的是重复性工作,两者有所冲突。 python-pptx是p...
    99+
    2024-04-02
  • Python操作word文档的示例详解
    目录写在前面创建一个文档先实现第一步,写入一个标题添加文字段落列表的添加图片的添加表格添加相关样式设置页眉和页脚写在前面 python-docx 不支持 doc 文档,一定要注意该点...
    99+
    2024-04-02
  • Python中字典常用操作的示例详解
    目录前言初始化合并字典字典推导式Collections 标准库字典转 JSON字典转 Pandas前言 字典是Python必用且常用的数据结构,本文梳理常用的字典操作,看这个就够了,...
    99+
    2024-04-02
  • Python常见文件操作的示例详解
    目录从文件中读取数据为什么要提供文件路径逐行读取创建一个包含文件各行内容的列表使用文件中的内容包含千位以上的大型文件圆周率中包含你的生日吗写入文件附加到文件从文件中读取数据 1:读取...
    99+
    2024-04-02
  • Python获取时间的操作示例详解
    目录获得当前时间时间戳获取当前时间获取昨天日期生成日历计算每个月天数计算3天前并转换为指定格式获取时间戳的旧时间获取时间并指定格式pandas 每日一练21读取本地EXCEL数据22...
    99+
    2024-04-02
  • Python文件的操作示例的详细讲解
    目录1. 文件的读写原理:2. 常用的文件打开模式3. 文件对象的常用方法4. 目录的相关操作1. 文件的读写原理: 文件的读写称为I/O操作。 操作原理: .py文件是用解释器...
    99+
    2024-04-02
  • Java操作Excel的示例详解
    目录使用场景excel 03 和 07的区别POIeasyExcel解析excel表中的对象POI使用步骤POI 写数据POI 读数据计算公式easyExcel读写数据写数据读数据j...
    99+
    2023-01-10
    Java操作Excel方法 Java操作Excel Java Excel
  • 利用Python中xlwt模块操作excel的示例详解
    目录一、安装二、创建表格并写入三、设置单元格样式四、设置单元格宽度五、设置单元格背景色六、设置单元格内容对齐方式七、单元格添加超链接八、单元格添加公式九、单元格中输入日期十、合并行和...
    99+
    2024-04-02
  • python之PyPDF2:操作PDF文档示例详解
    PyPDF2是一个用于处理PDF文档的Python库。它提供了一系列的功能,使我们能够读取、修改和创建PDF文件。本文将详细介绍PyPDF2库的使用示例,包括读取文档信息、提取文本内容、合并和拆分文档以及添加水印等操作。 首先,我们需要安装...
    99+
    2023-09-02
    python 数据库 开发语言 pip
  • Java API操作Hdfs的示例详解
    目录1.遍历当前目录下所有文件与文件夹2.遍历所有文件3.创建文件夹4.删除文件夹5.上传文件6.下载文件1.遍历当前目录下所有文件与文件夹 可以使用listStatus方法实现上述...
    99+
    2024-04-02
  • Python操作xlwings的实例详解
    目录数据来源上手pandas读取表1-2的数据xlwings获取表1-1sheetxlwings修改表1-1数据总结阿里云产品费用巡检,一般流程是登录账号,再逐项核对填写。虽然简单,...
    99+
    2024-04-02
  • Rust 中的文件操作示例详解
    目录文件路径文件创建和删除目录创建和删除文件创建和删除文件读取和写入文件打开文件读取文件写入相关资料文件路径 想要打开或者创建一个文件,首先要指定文件的路径。 Rust 中的路径操作...
    99+
    2024-04-02
  • C#数据库操作的示例详解
    目录功能需求技术知识点准备工作实现步骤功能需求 1,利用随机数模拟产生每次考试成绩 2,将每次考试成绩存入到数据库 3,将每次考试成绩划分优、良、中、差、不及格五类,并作为查询条件,...
    99+
    2024-04-02
  • Python+OpenCV实现图像基本操作的示例详解
    目录1. 计算机眼中的图像2. 图像的表示3. 基础操作 图像的读取4. 截取部分图像数据(ROI)5. 视频的读取6. 边界填充7. 图像的加法 图像的加法1. 计算机眼中的图像 ...
    99+
    2023-05-16
    Python OpenCV图像基本操作 Python OpenCV图像操作 Python OpenCV图像 Python OpenCV
  • Python的函数使用示例详解
    目录1 跳出循环-break2 python函数2.1 内置函数2.2 自定义函数2.3 main函数在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体。所以,在...
    99+
    2024-04-02
  • Python中Merge使用的示例详解
    merage pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来,语法如下: merge(le...
    99+
    2023-02-21
    Python Merge使用 Python Merge
  • JavaIO字符操作和对象操作示例详解
    目录字符操作编码与解码String 的编码方式Reader 与 Writer实现逐行输出文本文件的内容对象操作序列化Serializabletransient字符操作 编码与解码 ...
    99+
    2023-02-05
    JavaIO字符操作对象操作 Java IO
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作