1. PPT自动化
1.1 PPT自动化场景
- 批量PPT的创建与修改
- 大量图片、文字的写入
- 准确无误的插入图表等数据
1.2 pptx模块介绍
-
python-pptx为Python第三方模块,用于自动化生成和更新PowerPoint(.pptx)文件
-
安装:pip install python-pptx(python-pptx依赖的python版本为:2.6、2.7、3.3、3.4、3.6)
-
查看:pip list
-
导入:import pptx
2. python-pptx模块的使用
2.1 写入文本到PPT
import pptx
from pptx.util import Inches
# 步骤一:得到演示文稿的对象
prs = pptx.Presentation('test.pptx') # 以test.pptx为模板
# 步骤二:写入操作
# 设置幻灯片布局
slide = prs.slides.add_slide(prs.slide_layouts[0])
# prs.slides.add_slide(prs.slide_layouts[1])
# prs.slides.add_slide(prs.slide_layouts[2])
# 删除幻灯片
# print(len(prs.slides))
# del prs.slides._sldIdLst[1] # 根据索引删除,删除第2张幻灯片
# print(len(prs.slides))
# 添加文本框
text1 = slide.shapes.add_textbox(Inches(5), Inches(5), Inches(5), Inches(5))
text1.text = "这是文本框"
# 添加段落
p1 = text1.text_frame.add_paragraph()
p1.text = "我是段落1"
title_shape = slide.shapes.title
title_shape.text = '标题1'
slide.shapes.placeholders[1].text = '标题2'
# 添加文本
p1.add_run().text = "end"
# 步骤三:保存PPT文件
#prs.save('newtest.pptx')
prs.save('test.pptx')
执行效果:
2.2 添加图形到PPT
import pptx
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor
from pptx.util import Inches, Pt
# 步骤一:得到演示文稿的对象
prs = pptx.Presentation('test.pptx') # 以test.pptx为模板
# 步骤二:写入操作
# 设置幻灯片布局
slide = prs.slides.add_slide(prs.slide_layouts[0])
# prs.slides.add_slide(prs.slide_layouts[1])
# prs.slides.add_slide(prs.slide_layouts[2])
# 删除幻灯片
# print(len(prs.slides))
# del prs.slides._sldIdLst[1] # 根据索引删除,删除第2张幻灯片
# print(len(prs.slides))
# 添加文本框
text1 = slide.shapes.add_textbox(Inches(5), Inches(5), Inches(5), Inches(5))
text1.text = "这是文本框"
# 添加段落
p1 = text1.text_frame.add_paragraph()
p1.text = "我是段落1"
# 添加文本
p1.add_run().text = "end"
title_shape = slide.shapes.title
title_shape.text = '标题1'
slide.shapes.placeholders[1].text = '标题2'
# 添加自选图形
# 写入矩形,设置位置及大小
#slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(2), Inches(2), Inches(5), Inches(3))
shape = slide.shapes.add_shape(MSO_SHAPE.HEXAGON, Inches(2), Inches(2), Inches(5), Inches(3))
# 填充、边框
fill = shape.fill # 纯色填充
fill.solid()
# 设置填充色
fill.fore_color.rgb = RGBColor(255, 0, 0)
# 设置边线
line = shape.line
line.color.rgb = RGBColor(55, 3, 5)
# 设置边线大小(宽度)
line.width = Pt(2)
# 步骤三:保存PPT文件
#prs.save('newtest.pptx')
prs.save('test.pptx')
执行效果: