Python对PPT文档的基本操作

文章目录

  • Python对PPT文档的基本操作
  • 一、pptx模块
    • 1、官方文档
    • 2、安装pptx模块
  • 二、基本函数的使用方法
  • 三、使用案例
    • 1、修改ppt内容
    • 2、写入内容

一、pptx模块

1、官方文档

pptx库官方文档:python-pptx 0.6.21 documentation

2、安装pptx模块

pip3 install python-pptx

二、基本函数的使用方法

初始化ppt:ppt = Presentation()
插入一页幻灯片,使用布局num:slide = ppt.slides.add_slide(ppt.slide_layouts[num])

布局num的对应如下图所示:


获取此页ppt的所有占位符:shape = slide.shapes.placeholders # 占位符:placeholders
对shape[num]写入内容:shape[num].text = 'xx'
获取此页ppt标题的shape:title_shape = slide.shapes.title
对标题shape写入内容:title_shape.text = 'xx'
在shape[num]添加段落:para = shape[num].text_frame.add_paragraph()
对段落写入内容:para.text = 'xx'
设置段落字体是否粗体:para.font.blod = True
设置段落字体大小:para.font.size = Pt(num)
设置段落是否添加字体下划线:para.font.underline = True
插入文本框:textBox = slide.shapes.add_textbox(left,top,width,height)
插入图片:picture = slide.shapes.add_picture('图片',left,top,width,height)
插入表格:table = slide.shapes.add_table(rows=num,cols=num,left,top,width,height).table
设置表格第n列的宽度:table.columns[n].width = Inches(num)
表格单元格写入内容:table.cell(x,y).text = 'xx'

边距:left = Inches(num) top = Inches(num)
宽高度:width = Inches(num) height = Inches(num)
表格的操作可参考Python实现自动化办公(一):Python对Excel的基本操作(openpyxl),也可直接参考下方案例第四页PPT。

保存ppt:ppt.save('xx.pptx')

三、使用案例

1、修改ppt内容

首先,有一个这样子的PPT:

通过如下代码:

from pptx import Presentation
from pptx.util import Inches,Ptppt = Presentation('python_ppt.pptx')   # 初始化pptslide = ppt.slides[0]   # 定位到ppt的第一张幻灯片
print('slide: ',slide,'\n')shapes = slide.shapes   # 获取所有的shape
print('shapes: ',shapes,'\n')print(shapes[0].text_frame.paragraphs[0].text)   # 打印出shape[0]第一段的内容
print(shapes[1].text_frame.paragraphs[0].text)   # 打印出shape[1]第一段的内容#进行修改
shapes[0].text_frame.paragraphs[0].text = '人生苦短'   # 修改shape[0]第一段的内容
shapes[1].text_frame.paragraphs[0].runs[0].text = '我学python'   # 修改shape[1]第一段第一行的内容ppt.save('python_ppt.pptx')

修改成:

修改流程:
首先定位要修改的页面的文本框,然后再定位到段落或段落的行,再对齐内容进行修改,上方修改的代码处的runs即为其段落的所有行。
关于run可参考:Python实现自动化办公(二):Python对Word文档的基本操作(python-docx)的 二、基本函数的使用方法三、使用案例的 1、读取段落和行

2、写入内容

from pptx import Presentation
from pptx.util import Inches,Ptppt = Presentation()   # 初始化ppt#------------------# 第一页PPT
slide_1 = ppt.slides.add_slide(ppt.slide_layouts[0])   # 插入一页幻灯片,使用布局0shape_1 = slide_1.shapes.placeholders   # 获取此页ppt的所有占位符shape_1[0].text = 'CSDN'   # 对shape[0]写入内容
shape_1[1].text = 'Python操作PPT'   # 对shape[1]写入内容
#------------------##------------------# 第二页PPT
slide_2 = ppt.slides.add_slide(ppt.slide_layouts[1])   # 插入一页幻灯片,使用布局1title_shape = slide_2.shapes.title   # 获取此页ppt标题的shape
title_shape.text = '我 ♥ Python'   # 对标题shape写入内容shape_2 = slide_2.shapes.placeholders   # 获取此页ppt的所有占位符para_1 = shape_2[1].text_frame.add_paragraph()   # 在shape[1]添加段落
para_1.text = '人生苦短'   # 对para_1写入内容
para_1.font.size = Pt(30)   # 设置段落字体大小
para_1.font.underline = True   # 设置段落是否添加字体下划线para_2 = shape_2[1].text_frame.add_paragraph()   # 在shape[1]添加段落
para_2.text = '我学Python'   # 对para_2写入内容
para_2.font.size = Pt(50)   # 设置段落字体大小
para_2.font.blod = True   # 设置段落字体是否粗体#设置边距
left = Inches(3)
top = Inches(6)
width = Inches(6)
height = Inches(6)textBox = slide_2.shapes.add_textbox(left=Inches(3.5),top=Inches(6),width=Inches(6),height=Inches(6))   # 插入新的文本框
textBox.text = '加个⭐的文本框'   # 添加内容
#------------------##------------------# 第三页PPT
slide_3 = ppt.slides.add_slide(ppt.slide_layouts[5])   # 插入一页幻灯片,使用布局5slide_3.shapes.placeholders[0].text = '笠li笠'   # 对第三页PPT的第一个shape写入内容picture = slide_3.shapes.add_picture('picture.jpg',left=Inches(3.2),top=Inches(2),width=Inches(3.5),height=Inches(5))   # 插入图片
#------------------##------------------# 第四页PPT
slide_4 = ppt.slides.add_slide(ppt.slide_layouts[6])   # 插入一页幻灯片,使用布局6
table = slide_4.shapes.add_table(rows=2,cols=2,left=Inches(2),top=Inches(2),width=Inches(5),height=Inches(2)).table   # 插入表格
table.columns[0].width = Inches(2)   # 设置第0列的宽度
table.columns[1].width = Inches(3)   # 设置第1列的宽度#添加内容
table.cell(0,0).text = 'ppt'
table.cell(0,1).text = '对应库'
table.cell(1,0).text = 'Python'
table.cell(1,1).text = 'python-pptx'
#------------------#ppt.save('python.pptx')

效果如下图所示:



视频效果如下:

python制作PPT

本人是一名学生,目前正在学习中,本篇文章是我的学习笔记,如有错误的话还请指正。

Python实现自动化办公(三):Python对PPT文档的基本操作(python-pptx)相关推荐

  1. 【python自动化办公03】word操作-文档内容替换

    点击上方"AI搞事情"关注我们 有时候,我们需要将word中特定的内容进行批量替换为新的内容,那么如何应用python win32com 实现word文档内容的批量替换呢?下面就介 ...

  2. python开源项目博客_Blog_mini首页、文档和下载 - Python Flask开源博客 - OSCHINA - 中文开源技术交流社区...

    使用Blog_mini,你完全不用担心博客的管理问题! Blog_mini是一个用Python Flask开发的,拥有简洁页面(支持响应式布局!)和强大后台管理功能的开源博客系统,使用Blog_min ...

  3. python网站框架下载_web.py首页、文档和下载 - Python框架 - OSCHINA - 中文开源技术交流社区...

    web.py是一个小巧灵活的Python框架,它简单而且功能强大. webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依 ...

  4. python colors属于哪个包,Colour首页、文档和下载 - Python 颜色科学软件包

    Color是一个Python颜色科学软件包,实现了大量的颜色理论转换和算法. 安装:$ pip install colour-science 示例代码: >>> import col ...

  5. Python批量调整PPT文档样式

    Python批量调整PPT文档样式 在日常工作中,我们经常需要制作PPT文档来展示我们的工作成果或者进行汇报.但是,如果我们需要同时更改多张PPT的样式,手动修改会非常耗时且繁琐.此时,我们可以利用P ...

  6. Python数据分析大作业 4000+字 图文分析文档 销售分析

    资源地址:Python数据分析大作业 4000+字 图文分析文档 销售分析 +完整python代码 数据来自某商场,具体商业数据保密 资源地址:Python数据分析大作业 4000+字 图文分析文档 ...

  7. 办公软件excel表格_「教程」Office办公软件视频教程(幻灯片PPT 文档 表格 Keynote...

    [教程]Office办公软件视频教程(幻灯片PPT 文档 表格 Keynote) 本次分享的内容为办公软件教程,一共14套.教程内容包括文档制作,幻灯片的制作,表格的制作等. 教程内容:PPT幻灯片教 ...

  8. 如何用python实现自动化办公_python自动化办公操作PPT的实现

    1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍.这里提前做一个说明:python操作PPT,最好是我们提前设计 ...

  9. 47页PPT:如何利用Python进行自动化办公?

    47页PPT:如何利用Python进行自动化办公? → 资源获取 资源介绍(点击直达) 资源下载(点击直达) 47页PPT:如何利用Python进行自动化办公? 链接:https://pan.baid ...

最新文章

  1. 操作系统性能优化分析及工具
  2. 通过创建 HttpCookie 对象的实例编写 Cookie
  3. 开源 java CMS - FreeCMS2.8 数据对象 applyopen
  4. java同时执行同一个方法吗_java 返回结果的同时执行另一个方法
  5. Google Java编程风格指南中文版
  6. 神经网络与机器学习 第一讲(2)——什么是神经网络
  7. 腾讯文档 - 入门使用手册
  8. 7. 锁定框架(The Locking Framework)
  9. R可能让您惊喜的10件事
  10. 2022五一杯数学建模
  11. 航空航天行业工作站应用---EDA仿真计算工作站
  12. 远程桌面服务器零售授权许可证,由于没有远程桌面授权服务器可以提供许可证...
  13. Tesla M40 使用分享
  14. 压缩图片大小怎么弄?这样压缩不改变清晰度
  15. mysql外键(FK)及其外键关联操作reference
  16. 【翻译】乔尔测试:改进代码的12步
  17. 贪吃蛇大作战【C++游戏】
  18. vmos框架_vmos魔改共存版自带roor框架下载-vmos魔改版去广告去更新v1.0.63极简版_新绿资源网...
  19. 【ISCA'18】 Prediction based execution on Deep Neural Networks
  20. 常用概率分布的矩母函数、特征函数以及期望、方差的推导

热门文章

  1. 部分互联网公司及通信公司校招时间表及薪资(参考2017)
  2. 蓝奏云(Lanzou网盘下载链接无法打开的解决方法
  3. 全球电动汽车充电标准最详解析
  4. cesium中限制地图浏览范围
  5. 机器视觉在服务机器人中的应用
  6. 如何查看笔记本电脑固态硬盘接口与接口协议
  7. java石头剪刀布界面_利用Java模拟石头剪刀布游戏
  8. 【vue】移动端扫描二维码
  9. Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You hav
  10. 安迪的第一个字典Uva 10815