利用Python向PPT文档写入内容 添加段落、图片、表格

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » 利用Python向PPT文档写入内容 添加段落、图片、表格

幻灯片母板及占位符

你可以在视图的工具栏中找到幻灯片母版,你可以自己看一下!占位符(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')

利用Python向PPT文档写入内容 添加段落、图片、表格

设定层级关系,0为最顶层

p=tf.add_paragraph() # 添加一个段落
p.text='带圆点的项目符号行2'
p.level=1

p=tf.add_paragraph()
p.text='带圆点的项目符号行3'
p.level=2

利用Python向PPT文档写入内容 添加段落、图片、表格

添加一个文本框

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')

利用Python向PPT文档写入内容 添加段落、图片、表格

添加图片

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文档写入内容 添加段落、图片、表格

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《利用Python向PPT文档写入内容 添加段落、图片、表格》 发布于2020-05-18

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

2 + 8 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册