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

之前我们讲到填充占位符的时候只讲了怎么填充文本到占位符里,现在学到了如何添加图表,那么就顺便补充一下如何把图表填充到占位符里吧。

由于PPT默认自带的那些母版并没有ChartPlaceholder类型的占位符,所以我们要自己准备一个PPT文档,当然也可以使用书中提供的PPT文档“测试文档2.pptx”,里面创建了图片、图表、表格、文本框等多种母版,其中下标为2的母版是图表占位符,现在我们用它把图表占位符填充为一个饼图,代码如下:

  1. from pptx import Presentation
  2. from pptx.chart.data import ChartData
  3. from pptx.enum.chart import XL_CHART_TYPE
  4. from pptx.enum.shapes import PP_PLACEHOLDER_TYPE
  5. ppt = Presentation"./ppt_ files/测试文档2.pptx"
  6. slide = ppt.slides.add_slide(ppt.slide_layouts[2])
  7. for placeholder in slide.placeholders:
  8. phf = placeholder.placeholder_format
  9. print(phf.type) # 输出:CHART (8)
  10. if phf.type != PP_PLACEHOLDER_TYPE.CHART:
  11. continue
  12. chart_data = ChartData()
  13. chart_data.categories = ['Q1','Q2','Q3','Q4']
  14. chart_data.add_series('数码娱乐',(36.6,21.1,15.9,20.4))
  15. graphic_frame = placeholder.insert_chart(XL_CHART_TYPE.PIE,
  16. chart_data)
  17. graphic_frame.chart.has_legend = True
  18. ppt.save("./ppt_ files/test.pptx")

还是与之前填充文本占位符一样,首先通过占位符对象的placeholder_format获取到占位符的类型,如果type是PP_PLACEHOLDER_TYPE.CHART,就给它填充,填充操作就是调用占位符对象的insert_chart()方法,把图表类型和图表数据传进去就可以了,整个过程应该没有什么比较难理解的地方。