python - 如何在Python中生成powerpoint时知道它是什么形状的数字

标签 python powerpoint

我正在尝试用 python 生成 Powerpoint,但我很难弄清楚 ppt 中的形状编号是多少。

例如:

prs2.slides[1].shapes[3].table.cell(3,2).text_frame.text = 2000
prs2.slides[1].shapes[3].table.cell(3,2).text_frame.paragraphs[0].font.size = 12

我使用这些代码在第一张幻灯片上找到一个表格,并将单元格(3,2)的文本值设置为2000,然后将大小更改为12。但我不知道如何知道表格是第一张幻灯片的形状[3]?我现在正在做的是从shapes[0]到shapes[3]尝试,但我认为必须有一种更简单的方法来识别形状编号。

非常感谢您的帮助!

最佳答案

via win32com 每个形状应该有一个 type property对应于msoShapeType enumerationmsoTable 类型的值为 19

for sh in prs2.slides[1].shapes:
    if sh.type == 19:  # msoTable = 19
        sh.table.cell(3,2).text_frame.text = 2000
        sh.table.cell(3,2).text_frame.paragraphs[0].font.size = 12
        break

如果您使用的是 python-pptx,请尝试使用 graphicframe.has_table 属性(注意:您可能需要首先测试形状是否图形框架,或相应地捕获错误):

http://python-pptx.readthedocs.io/en/latest/api/shapes.html#graphicframe-objects

关于python - 如何在Python中生成powerpoint时知道它是什么形状的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152996/

相关文章:

python - 将我的 jupyter notebook 设置为使用 python 版本的环境

python - 为什么 Flopy 给出相同的结果?

python - 如何让 python datetime.strptime 考虑传递的时区?

excel - 通过 VBA 获取 PPT 演示文稿的事件幻灯片(但来自 Excel!!)

vba - 如何在 PowerPoint 中添加点击时被光标替换的文本?

vba - 对于复制的组,Shape.Child 属性返回 False

python - Flask 关系,仅同一个人的唯一列名

python - 从字符串 python 中剪切中间单词

python - 如何在 python-pptx 中更改/添加图表数据系列?

apache-poi - 如何使用 apache poi ppt 将幻灯片中具有动态列的表格居中对齐