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

有了文本框之后我们就可以尝试添加或者修改一些文字了,读者对这个部分应该是比较熟悉的,因为文本框的文本是通过Paragraph对象和Run对象控制的,没错,与操作python-docx里的段落和Run是一样的方法。每个TextFrame对象都默认有一个段落,我们访问一下TextFame对象的paragraphs属性可以获取到所有段落(返回值是一个元组),我们取第0个元素就拿到默认段落了,拿到Paragraph对象之后直接修改它的text属性就相当于改变了文本框的文本了,但是要注意text属性只能被赋值为字符串类型,赋值为其他数据类型是会报错的,代码如下:

  1. from pptx import Presentation
  2. ppt = Presentation()
  3. slide = ppt.slides.add_slide(ppt.slide_layouts[0])
  4. for shape in slide.shapes:
  5. if not shape.has_text_frame:
  6. continue
  7. text_frame = shape.text_frame
  8. paragraph = text_frame.paragraphs[0]
  9. paragraph.text = "这是一个文本框"
  10. ppt.save("./ppt_ files/test.pptx")

当然,如果一个段落还不够用的话,可以调用TextFrame的add_paragraph()方法添加段落,不过与python-docx不同的是,TextFrame的add_paragraph()方法不能传参数,也就是不能在创建段落的时候顺便把段落文本也写上去,只能手动调用段落的text属性填写文本,代码如下:

  1. from pptx import Presentation
  2. ppt = Presentation()
  3. slide = ppt.slides.add_slide(ppt.slide_layouts[0])
  4. shape = slide.shapes[0]
  5. if shape.has_text_frame:
  6. text_frame = shape.text_frame
  7. p1 = text_frame.paragraphs[0]
  8. p1.text = "这是默认段落"
  9. p2 = text_frame.add_paragraph()
  10. p2.text = "这是新增的段落"
  11. text_frame.add_paragraph().text = "再新增了一个段落"
  12. print(len(text_frame.paragraphs)) # 输出:3
  13. ppt.save("./ppt_ files/test.pptx")

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