幻灯片母板及占位符
你可以在视图的工具栏中找到幻灯片母版,你可以自己看一下!占位符(Placeholder),顾名思义就是占位的,你看到的单击此处添加标题、单击此处添加文本等都是占位符!
添加Slide和内容
查看模板信息
from pptx import Presentation
prs=Presentation('1.pptx')
# 用第一个母版生成一页PPT
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}')
prs.save('./test.pptx')
向占位符内填写内容,shape.text=字符串,prs.save(文件路径):
from pptx import Presentation
prs=Presentation('1.pptx')
# 用第一个母版生成一页PPT
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=f'{phf.idx}--{phf.type}'
prs.save('./test.pptx')
根据占位符ID确定要填在哪里,slide.placeholders[占位符ID],然后修改占位符里的内容:
from pptx import Presentation
prs=Presentation('1.pptx')
title=prs.slide_layouts[0]
slide=prs.slides.add_slide(title)
name=slide.placeholders[0]
name.text='小学生'
content=slide.placeholders[1]
content.text='玩王者'
prs.save('./test.pptx')
我这里使用的是默认的母版,只有一个标题和内容
添加段落paragraph
from pptx import Presentation
prs=Presentation('1.pptx')
title=prs.slide_layouts[1]
slide=prs.slides.add_slide(title)
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'
p=tf.add_paragraph()
p.text='带圆点的项目符号行3'
prs.save('./test.pptx')
设定层级关系,0为最顶层
p=tf.add_paragraph() # 添加一个段落
p.text='带圆点的项目符号行2'
p.level=1
p=tf.add_paragraph()
p.text='带圆点的项目符号行3'
p.level=2
添加一个文本框
from pptx import Presentation
from pptx.util import Cm,Pt
prs=Presentation('1.pptx')
title=prs.slide_layouts[6] # 挑选母版
slide=prs.slides.add_slide(title)
left=top=width=heigth=Cm(3)
text_box=slide.shapes.add_textbox(left,top,width,heigth)
tf=text_box.text_frame
tf.text='这是一段文本框里的文字'
p=tf.add_paragraph()
p.text='这是第二段文字,加粗,字号40'
p.font.bold=True
p.font.size=Pt(40)
prs.save('./test.pptx')
添加图片
from pptx import Presentation
from pptx.util import Cm,Pt
prs=Presentation('1.pptx')
title=prs.slide_layouts[6] # 挑选母版
slide=prs.slides.add_slide(title)
left=top=Cm(0)
width=height=Cm(10)
# 图片路径,距离左边,距离顶端,宽度,高度
pic=slide.shapes.add_picture('1.jpg',left,top,width,height)
left=top=Cm(10)
pic=slide.shapes.add_picture('2.jpg',left,top,width,height)
prs.save('./test.pptx')
添加表格
from pptx import Presentation
from pptx.util import Cm,Pt
prs=Presentation('1.pptx')
title=prs.slide_layouts[6] # 挑选母版
slide=prs.slides.add_slide(title)
rows,cols=4,2 # 设定4行 2列
left=top=Cm(5)
width=Cm(18)
heigth=Cm(4)
# 几行 几列
table=slide.shapes.add_table(rows,cols,left,top,width,heigth).table
table.columns[0].width=Cm(6) # 列高
table.columns[1].width=Cm(4)
table.rows[0].heigth=Cm(2)# 行宽
data=[
['姓名','成绩'],
['马冬梅',99],
['马什么梅',90],
['什么冬梅',80],
]
for row in range(rows): # 循环行
for col in range(cols): # 循环列
table.cell(row,col).text=str(data[row][col])
prs.save('./test.pptx')
未经允许不得转载:作者:鳄鱼君,
转载或复制请以 超链接形式 并注明出处 鳄鱼君。
原文地址:《利用Python向PPT文档写入内容 添加段落、图片、表格》 发布于2020-05-18