首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
引言:Python操作PPT
新建和保存PPT
打开PPT文档
ppt与pptx格式转换
设置长度单位
操作幻灯片
幻灯片布局
新建幻灯片
幻灯片位置
获取幻灯片
删除幻灯片
PPT中的形状介绍
获取形状
添加形状
形状填充色
形状边框
占位符介绍
获取占位符
占位符类型
填充占位符
操作文本介绍
获取文本框
添加文本框
添加文本
段落样式
Run样式
文本框样式
添加图表
柱状图
折线图
散点图
饼图
占位符图表
操作表格
插入表格
读取表格
占位符表格
表格对象
行列对象
访问单元格
单元格文本
单元格样式
合并单元格
拆分单元格
操作图片
当前位置:
首页>>
技术小册>>
Python与办公-玩转PPT
小册名称:Python与办公-玩转PPT
既然SlideShapes对象是用来管理形状的,根据我们的经验,它肯定也有添加形状对象的方法。对,它有一个add_shape()方法用来新增形状,根据你的经验,它应该会有哪些参数? 首先肯定要有被添加的形状类型,然后考虑一个形状在页面里的状态,比如说形状的位置和大小,如果这些要素都确定了,那么一个形状就可以添加到页面上了。SlideShapes对象的add_shape()方法一共有五个参数,第一个是用来确定添加哪种形状的形状类型id,第二和第三个参数分别是形状的左边、上边与页面的左边、上边之间的距离,这两个值决定了形状的位置,第四和第五个参数分别是形状的宽高,宽高确定形状的大小。 那么我们来试一下添加一个形状,代码如下: ```bash from pptx import Presentation from pptx.util import Inches from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE ppt = Presentation() slide = ppt.slides.add_slide(ppt.slide_layouts[0]) autoshape_type_id = MSO_AUTO_SHAPE_TYPE.ROUNDED_RECTANGLE left = top = Inches(3.0) width = height = Inches(1) shape = slide.shapes.add_shape(autoshape_type_id,left,top, width,height) print(type(shape)) # 输出:<class 'pptx.shapes.autoshape.Shape'> ppt.save("./ppt_ files/test.pptx") ``` 上面的代码中,我们调用add_shape()方法添加了一个距离页面的左边和上边都是3英寸的圆角矩形,它的宽高都是1英寸,该方法会返回一个Shape对象,代表一个自动形状。比较关键的是,怎么知道圆角矩形的类型id?也不难,python-pptx已经把这些自动形状都定义在MSO_AUTO_SHAPE_TYPE这个枚举类里,而圆角矩形在这个类里的名字就叫ROUNDED_RECTANGLE,它对应的id是5,我们直接使用名字去代替id也是可以的。至于怎么知道ROUNDED_RECTANGLE就是指圆角矩形呢,我们可以添加该形状,再打开PPT软件看一下就确定了 实际上,MSO_AUTO_SHAPE_TYPE这个枚举类一共有182种自动形状,老方法,我们遍历一下它的_ _members_ _属性,这样就能拿到所有自动形状了,再访问一下这些形状的value属性就可以知道它们对应的名字和id,代码如下: ```bash from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE print(len(MSO_AUTO_SHAPE_TYPE._ _members_ _)) # 输出:182 for shape in MSO_AUTO_SHAPE_TYPE._ _members_ _: print(shape.value) # 输出: # ACTION_BUTTON_BACK_OR_PREVIOUS (129) # ACTION_BUTTON_BEGINNING (131) # ACTION_BUTTON_CUSTOM (125) # ACTION_BUTTON_DOCUMENT (134) # ACTION_BUTTON_END (132) # ... ``` 知道了这些形状的名字和id之后,具体要用哪个就看需求了,这些形状分别长什么样,只能添加后在PPT中查看了。如果希望添加在PPT软件上看到的某个形状,但又不知道在python-pptx中它叫什么名字怎么办?这也很简单啊,在PPT软件中添加好这个形状,然后在python-pptx读取一下该形状,并把它的名字打印出来就ok了。 我们在创建形状的时候指定了位置和宽高,如果后期想要查看某个形状的位置,可以直接访问它的left和top属性,如果要看它的宽高,可以访问它的width和height属性,当然,直接通过这些属性修改它的位置和宽高也是可以的,代码如下: ```bash from pptx import Presentation from pptx.util import Inches,Cm from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE ppt = Presentation() ... shape = slide.shapes.add_shape(autoshape_type_id,left,top, width,height) print(type(shape)) print(shape.left.inches) # 输出:3.0 print(shape.top) # 输出:2743200 print(shape.width.inches) # 输出:1.0 print(shape.height) # 输出:914400 shape.left = Inches(2) shape.top = Inches(3) shape.width = Cm(10) shape.height = Cm(3) ppt.save("./ppt_ files/test.pptx") ```
上一篇:
获取形状
下一篇:
形状填充色
该分类下的相关小册推荐:
Python合辑5-格式化字符串
Python编程轻松进阶(四)
Python神经网络入门与实践
Python与办公-玩转Excel
Python编程轻松进阶(二)
Python3网络爬虫开发实战(下)
Python合辑7-集合、列表与元组
Python合辑4-130个字符串操作示例
Python合辑11-闭包函数
Python合辑10-函数
Python与办公-玩转PDF
机器学习算法原理与实战