python ppt自动生成目录_利用python-pptx库读写操作PPT,批量自动生成或修改的PPT

python的python-pptx库是一个优秀的读写PPT的库,可以建新建PPT及打开本地电脑上已经的的PPT。可以向PPT里增加各种元素、设置、调整格式,提取PPT里的文字等等。但同时又由于PPT的个性化比较高,批量生成制作的可能性比较小,所以在网上留下的详细教程不多。本节根据 python-pptx 0.6.18文档 整理,作了相关的备注。(备注:不支持.ppt拓展名的文件)

先来一些python-pptx库名词释义:

Presentation:演示,可以理解为powerpoint程序

slides:所有的幻灯片

slide:单张幻灯片

layouts:布局

slide_layouts:幻灯片布局

textbox:文本框

text_frame:文本框

paragraph:段落

add_paragraph:添加段落

enum:枚举,列举

bullet_slide_layout:项目符号幻灯片布局

title_slide_layout:标题幻灯片版式

prs.slide_layouts是演示文稿中包含的幻灯片布局的集合

prs.slides是演示文稿中幻灯片的集合

slide_masters:幻灯片母版

特别说明一下,幻灯片布局的样式( slide_layouts ):

python-pptx的使用实例:

1、新建一个PPT并添加文本框及文字:

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE

from pptx.util import Inches,Pt

prs=Presentation()

blank_slide_layout=prs.slide_layouts[6]

slide=prs.slides.add_slide(blank_slide_layout)

#设置要新建的文本框的位置

left = top = width = height = Inches(1)

#实例化一个文本框

txBox = slide.shapes.add_textbox(left, top, width, height)

#设置文件框的类型

tf=txBox.text_frame

#给定文本框里的文字

tf.text='This is text inside a textbox'

#添加段落,向下在添加段落文字

p=tf.add_paragraph()

#给新增加的段落添加文字

p.text="This is a second add_paragraph that's bold"

#给新添加的段落文字设置为粗体

p.font.bold=True

#再在这个文本框中新建一个段落

p=tf.add_paragraph()

#设置新段落的文字

p.text="This is a third paragraph that's big"

#设置新添加的段落文字的字号为40

p.font.size=Pt(40)

#保存新建的PPT。

prs.save(r'C:/Users/Administrator/Desktop/test.pptx')

2、新建一个PPT并在PPT中添加一个图片:

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE

from pptx.util import Inches,Pt

#要添加图片的路径

img_path=r'C:/Users/Administrator/Desktop/图片2.png'

#实例化一个PPT

prs=Presentation()

#设置要新建的PPT的样式

blank_slide_layout=prs.slide_layouts[6]

#根据设置的PPT布局样式新建一张空白的PPT

slide=prs.slides.add_slide(blank_slide_layout)

#设置图片的添加位置,以英寸为单位

left=top=Inches(1)

#在新建的PPT里添加指定的图片,到指定的位置

pic=slide.shapes.add_picture(img_path,left,top)

#重新调整图片距离左边的位置

left=Inches(5)

#设置图片的高度

height=Inches(5.5)

#将指定的图片再插入到新的位置,并设置图片的大小

pic=slide.shapes.add_picture(img_path,left,top,height=height)

#保存新建的PPT。

prs.save(r'C:/Users/Administrator/Desktop/test.pptx')

3、 新建幻灯片并添加形状 :

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE

from pptx.util import Inches,Pt

#实例化一个PPT

prs=Presentation()

#设置新建PPT的布局样式:仅标题幻灯片版式

title_only_slide_layout=prs.slide_layouts[5]

#根据指定样式新建一张PPT,

slide=prs.slides.add_slide(title_only_slide_layout)

#把新建PPT中的所有形状对象shapes赋值给变量shapes

shapes=slide.shapes

#设置标题的文字

shapes.title.text='Adding an AutoShape'

#设置下面新建形状距所在页PPT左边的位置

left=Inches(0.93)

#设置下面新建形状距所在页PPT顶商的位置

top=Inches(3.0)

#设置插入形状的宽度

width=Inches(1.75)

#设置插入形状的高度

height=Inches(1.0)

#根据指定位置、大小新建一个五角形

shape=shapes.add_shape(MSO_SHAPE.PENTAGON,left,top,width,height)

#给新建的形状添加文字

shape.text='Step 1'

#设置下面新建V形距左边的位置,0.4是V形的深度

left=left+width-Inches(0.4)

#设置新建V形的宽度

width=Inches(2.0)

#通过循环创建4个V形形状

for n in range(2,6):

#根据指定的位置、大小新建一个形状

shape=shapes.add_shape(MSO_SHAPE.CHEVRON,left,top,width,height)

#形状的文字

shape.text='Step %d'%n

#重新调整下一个形状距离左边的位置

left=left+width-Inches(0.4)

#保存新建的PPT。

prs.save(r'C:/Users/Administrator/Desktop/test.pptx')

4、新建PPT并添加一个表格:

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE

from pptx.util import Inches,Pt

#实例化一个PPT

prs=Presentation()

#设置将要新建的幻灯片版式

title_only_slide_layout=prs.slide_layouts[5]

#根据上面版式新建一张PPT

slide=prs.slides.add_slide(title_only_slide_layout)

#把新建PPT中所有的形状集合赋值给变量shapes

shapes=slide.shapes

#设置标题的文字

shapes.title.text='Adding a Table'

#设计将要新建的表格的行列数

rows=cols=2

#设置距离幻灯片左边及顶端的距离

left=top=Inches(2.0)

#设置表格的宽度

width=Inches(6.0)

#设置表格的高度

height=Inches(0.8)

#根据指定的行列数、位置、大小新建一个表格

table=shapes.add_table(rows,cols,left,top,width,height).table

#重新调整每列的宽度

table.columns[0].width=Inches(2.0)

table.columns[1].widht=Inches(4.0)

#设置表头的文字

table.cell(0,0).text='Foo'

table.cell(0,1).text='Bar'

#设置表体单元格里的文字

table.cell(1,0).text='Baz'

table.cell(1,1).text='Qux'

#保存新建的PPT。

prs.save(r'C:/Users/Administrator/Desktop/test.pptx')

上面是python-pptx几个常用的基本操作,后续会结合实际实例再跟大家分享。

你可能感兴趣的:(python,ppt自动生成目录)