利用python-pptx库读写操作PPT,批量自动生成或修改的PPT
2019/11
30
18:11
阅读(7280)
阅读(7280)
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几个常用的基本操作,后续会结合实际实例再跟大家分享。
由o郭二爷o原创或整理--转载请注明: http://www.dszhp.com/python-pptx.html
发表回复