Python自动化办公PPT-写入内容

1. 安装模块

Windows用户打开命令行输入:pip install python-pptx

Mac用户打开终端/Terminal输入:pip3 install python-pptx

使用windows系统,如果出现无法安装情况,可以在cmd模式下输入网址选择国内清华镜像。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

导入模块:import pptx

2. 读取PPT文档内容

1)新建文档,确认占位符类型

from pptx import Presentation

prs = Presentation() #初始化一个空pptx文档
slide = prs.slides.add_slide(prs.slide_layouts[0])  # 用第一个母版生成一页ppt
for shape in slide.placeholders:         # 获取这一页所有的占位符
    phf = shape.placeholder_format
    print(f'{phf.idx}--{shape.name}--{phf.type}')  # id号--占位符形状名称-占位符的类型
    shape.text = f'{phf.idx}--{shape.name}--{phf.type}'
prs.save("写入内容.pptx")

输出结果:

0–Title 1–CENTER_TITLE (3)
1–Subtitle 2–SUBTITLE (4)

加入while循环,可以一次生成所有版式:

from pptx import Presentation

prs = Presentation() #初始化一个空pptx文档
i = 0
while i <= 10:
    slide = prs.slides.add_slide(prs.slide_layouts[i])  
    i = i+1
    for shape in slide.placeholders:         # 获取这一页所有的占位符
        phf = shape.placeholder_format
        print(f'{phf.idx}--{shape.name}--{phf.type}')  # id号--占位符形状名称-占位符的类型
        shape.text = f'{phf.idx}--{shape.name}--{phf.type}'
prs.save("写入内容.pptx")

得到占位符类型如下:

Title 标题
Subtitle 副标题
Body 正文
Content 文本
Text 文本
Picture 图片
Vertical Text 竖排文本

Python自动化办公PPT-写入内容_第1张图片
2)向占位符中添加内容

实际的写入操作中,占位符类型不一定严格来写。只是用于同时写入较多的内容时便于区分。
① 添加文字
通用模式:body_shape

from pptx import Presentation
from pptx.util import Inches,Pt,Cm

prs = Presentation()
# 插入幻灯片,布局slide_layout为母版的第二个版式
slide = prs.slides.add_slide(prs.slide_layouts[10])

# 向占位符中添加文本,前提是占位符必须存在。
body_shape = slide.shapes.placeholders
body_shape[0].text = '这是占位符【0】'
body_shape[1].text = '这是占位符【1】'

prs.save("写入内容.pptx")

模式一:title

from pptx import Presentation

prs = Presentation()
# 插入幻灯片,布局slide_layout为母版的第二个版式
slide = prs.slides.add_slide(prs.slide_layouts[1])
body_shape = slide.shapes.placeholders


title_shape = slide.shapes.title
title_shape.text = '这是一个标题'
subtitle = slide.shapes.placeholders[1]
subtitle.text = '这是一个副标题'
prs.save("写入内容.pptx")

② 添加新段落

from pptx import Presentation

prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[1])
title_shape = slide.shapes.title
title_shape.text = '这是一个标题'
subtitle = slide.shapes.placeholders[1]
subtitle.text = '这是一个文本框'
shapes = slide.shapes

# 添加新段落
new_paragraph = subtitle.text_frame.add_paragraph()
new_paragraph.text = '新段落'

prs.save("写入内容.pptx")

③ 添加新的文本框

from pptx import Presentation
from pptx.util import Inches,Pt,Cm
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[1])

# 添加新文本框
left = top = width = height =Cm(10)
text_box = slide.shapes.add_textbox(left,top,width,height)
text_box.text = '这是一个新文本框'

prs.save("写入内容.pptx")

参考:
Python自动化办公 - 对PPT的操作(Python-pptx的基本使用
Python从菜鸟到高手(10):循环

你可能感兴趣的:(Python自动化办公-PPT,python,ppt)