# 安装 pip install python-pptx
from pptx import Presentation
from pptx.util import Cm, Pt
# 打开ppt
prs = Presentation('测试.pptx')
# 获取slide幻灯片
for slide in prs.slides:
# 获取形状shape
for shape in slide.shapes:
if shape.has_text_frame: # 判断是否有文字
text_frame = shape.text_frame # 获取文字框
print(text_frame.text)
# 从shape中找段落paragraphs
for paragraph in text_frame.paragraphs:
print(paragraph.text)
# 写入内容
prs = Presentation('空白演示.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[0]) # 获取第一个母版
for shape in slide.placeholders: # 获取这一页的所有占位符
phf = shape.placeholder_format
print(f'{phf.idx}--{shape.name}--{phf.type}')
# 要写入的内容 shape.text=字符串
shape.text = f'{phf.idx}--{phf.type}'
prs.save('test.pptx') # 保存文件路径
# 根据占位符ID确定要填写哪里
prs = Presentation('空白演示.pptx')
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
# slide.placeholders[占位符ID]
center_title = slide.placeholders[0] # 主标题
sub_title = slide.placeholders[1] # 副标题
# 修改占位符里的内容
center_title.text = '欢迎你!'
sub_title.text = '热烈欢迎来到xxx'
prs.save('test.pptx') # 保存文件路径
# 添加段落paragraph
prs = Presentation()
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
title_shape = shapes.title
body_shape = shapes.placeholders[1]
title_shape.text = '添加项目符号列表页'
tf = body_shape.text_frame
tf.text = '带圆点的项目符号行1'
# 添加一个段落
p = tf.add_paragraph()
p.text = '带圆点的项目符号行2'
# 设定层级关系 0为最顶层
p.level = 1
p = tf.add_paragraph()
p.text = '带圆点的项目符号行2'
p.level = 2
prs.save('test2.pptx')
# 添加文本框
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = width = height = Cm(3)
# slide.shapes.add_textbox(距离左边,距离顶端,宽度,高度)
text_box = slide.shapes.add_textbox(left, top, width, height)
tf = text_box.text_frame
tf.text = '这是一段文本框里的文字'
p = tf.add_paragraph()
p.text = '这是第二段文字,加粗,字号20'
p.font.bold = True
p.font.size = Pt(20)
prs.save('test3.pptx')
# 添加图片
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = Cm(3)
# slide.shapes.add_picture(图片路径,距离左边,距离顶端,宽度,高度)
pic = slide.shapes.add_picture('a.png', left, top) # 原图片大小
width = Cm(5)
height = Cm(5.5)
pic = slide.shapes.add_picture('a.png', left, top, width=width, height=height) # 指定图片大小
prs.save('test4.pptx')
# 添加表格
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
rows, cols = 3, 2 # 要添加的表格的行数、列数
left = top = Cm(3)
width = Cm(10)
height = Cm(6)
table = slide.shapes.add_table(rows, cols, left, top, width, height).table
table.columns[0].width = Cm(4) # 第一列宽
table.columns[1].width = Cm(3) # 第二列宽
table.rows[0].height = Cm(2) # 第一行高
data = [
['a', 1],
['b', 2],
['c', 3],
]
for row in range(rows):
for col in range(cols):
table.cell(row, col).text = str(data[row][col])
prs.save('test5.pptx')
4.python-pptx基本操作
最新推荐文章于 2024-08-05 07:00:49 发布
本文详细介绍了如何使用Python库python-pptx操作PowerPoint,包括读取、修改文本、插入段落、添加图片、表格及根据占位符ID定位内容的编写。从打开演示文稿到自动化填充,涵盖了基本到高级的PPTX处理技巧。
摘要由CSDN通过智能技术生成