如何知道在Python中生成powerpoint时的形状编号

如何知道在Python中生成powerpoint时的形状编号,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。但我不知道如

我试图用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]?我现在要做的是尝试从形状[0]到形状[3],但我认为必须有一种更简单的方法来识别形状编号


非常感谢你的帮助

通过
win32com
每个形状都应该有一个对应于。
msoTable
类型的值为
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\u table
属性(注意:您可能需要先测试形状是graphicframe,还是相应地捕获错误):


我尝试了您的代码,但出现了一个错误:AttributeError:“GraphicFrame”对象没有属性“type”。当我使用sh.type时,似乎在sh之后没有选项“type”。您如何处理powerpoint?通过win32com或其他软件包?如果能包含这样的细节,那会很有帮助:)我使用的是pptx,而不是win32com,你熟悉pptx吗?我用过一两次。见修改后的答案。