当前位置:  首页>> 技术小册>> Python与办公-玩转PPT

形状指在PPT页面上的各种元素,所以形状应该是由Slide对象管理的,要获取一个页面的所有形状,我们可以访问Slide对象的shapes属性,它会返回一个可迭代的SlideShapes对象,即该页面的所有形状,代码如下:

  1. from pptx import Presentation
  2. ppt = Presentation()
  3. layout = ppt.slide_layouts[0]
  4. slide = ppt.slides.add_slide(layout)
  5. shapes = slide.shapes
  6. print(type(shapes))
  7. # 输出:<class 'pptx.shapes.shapetree.SlideShapes'>

如果只是想获取某个形状,也没什么问题,因为SlideShapes对象是一个可迭代对象,完全可以通过下标去获取某个形状,但要注意,下标必须存在,不要让下标越界了,代码如下:

  1. from pptx import Presentation
  2. ppt = Presentation()
  3. slide = ppt.slides.add_slide(ppt.slide_layouts[0])
  4. shapes = slide.shapes
  5. print(len(shapes)) # 输出:2
  6. shape1 = shapes[0]
  7. shape2 = shapes[1]
  8. print(type(shape1))
  9. # 输出:<class 'pptx.shapes.placeholder.SlidePlaceholder'>
  10. print(type(shape2))
  11. # 输出:<class 'pptx.shapes.placeholder.SlidePlaceholder'>
  12. ppt.save("./ppt_ files/test.pptx")

上面的代码使用第0个布局创建了一个Slide对象,该布局有两个SlidePlaceholder形状,其实就是两个文本框,你可以打开该文档查看这部分内容。


该分类下的相关小册推荐: