2017-07-17 39 views
1

我試圖在python中生成Powerpoint,但是我很難弄清楚ppt中的形狀編號是什麼。如何知道在Python中生成PowerPoint時使用的是什麼形狀的數字

例如:

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],但我認爲必須有一種更簡單的方法來識別形狀編號。

非常感謝您的幫助!

回答

3

通過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屬性(注意:您可能需要測試的形狀是否一個graphicframe,第一,或相應捕獲錯誤):

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

+0

我試過了你的代碼,但是有一個錯誤:AttributeError:'GraphicFrame'對象沒有'type'屬性 – juanbin

+0

當我使用sh.type時,看起來type不是sh後面的選項。 – juanbin

+0

你如何處理powerpoint?通過win32com或其他一些軟件包?這將是有益的,包括該細節:) –

相關問題