如何使用python pptx访问mso自动形状的类型?

时间:2019-07-01 17:52:48

标签: python powerpoint python-pptx

我知道如何添加某种类型的auto_shape,例如ISOSCELES_TRIANGLE。但是,如何找到幻灯片形状的三角形呢?有没有一种方法可以访问MsoAutoShapeType并获取类型。我想计算一张幻灯片中有多少个三角形。谢谢

1 个答案:

答案 0 :(得分:1)

请参阅形状的.auto_shape_type属性,该属性返回MsoAutoShapeType值之一。

from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE

pres = Presentation("shapes.pptx")
slide = pres.slides[0]
triangles = []
for s in slide.shapes:
    try:
        if s.auto_shape_type == MSO_SHAPE.ISOSCELES_TRIANGLE:
            triangles.append(s)
    except AttributeError as e:
        # shape is **NOT** an auto_shape; ignore
        print(f'{s.name} is not an AutoShape')
        pass

print(len(triangles))