python ppt自动生成目录_利用python-pptx库读写操作PPT,批量自动生成或修改的PPT
python的python-pptx庫是一個優(yōu)秀的讀寫PPT的庫,可以建新建PPT及打開本地電腦上已經(jīng)的的PPT。可以向PPT里增加各種元素、設(shè)置、調(diào)整格式,提取PPT里的文字等等。但同時又由于PPT的個性化比較高,批量生成制作的可能性比較小,所以在網(wǎng)上留下的詳細(xì)教程不多。本節(jié)根據(jù) python-pptx?0.6.18文檔 整理,作了相關(guān)的備注。(備注:不支持.ppt拓展名的文件)
先來一些python-pptx庫名詞釋義:
Presentation:演示,可以理解為powerpoint程序
slides:所有的幻燈片
slide:單張幻燈片
layouts:布局
slide_layouts:幻燈片布局
textbox:文本框
text_frame:文本框
paragraph:段落
add_paragraph:添加段落
enum:枚舉,列舉
bullet_slide_layout:項目符號幻燈片布局
title_slide_layout:標(biāo)題幻燈片版式
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)
#設(shè)置要新建的文本框的位置
left = top = width = height = Inches(1)
#實例化一個文本框
txBox = slide.shapes.add_textbox(left, top, width, height)
#設(shè)置文件框的類型
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"
#給新添加的段落文字設(shè)置為粗體
p.font.bold=True
#再在這個文本框中新建一個段落
p=tf.add_paragraph()
#設(shè)置新段落的文字
p.text="This is a third paragraph that's big"
#設(shè)置新添加的段落文字的字號為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()
#設(shè)置要新建的PPT的樣式
blank_slide_layout=prs.slide_layouts[6]
#根據(jù)設(shè)置的PPT布局樣式新建一張空白的PPT
slide=prs.slides.add_slide(blank_slide_layout)
#設(shè)置圖片的添加位置,以英寸為單位
left=top=Inches(1)
#在新建的PPT里添加指定的圖片,到指定的位置
pic=slide.shapes.add_picture(img_path,left,top)
#重新調(diào)整圖片距離左邊的位置
left=Inches(5)
#設(shè)置圖片的高度
height=Inches(5.5)
#將指定的圖片再插入到新的位置,并設(shè)置圖片的大小
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()
#設(shè)置新建PPT的布局樣式:僅標(biāo)題幻燈片版式
title_only_slide_layout=prs.slide_layouts[5]
#根據(jù)指定樣式新建一張PPT,
slide=prs.slides.add_slide(title_only_slide_layout)
#把新建PPT中的所有形狀對象shapes賦值給變量shapes
shapes=slide.shapes
#設(shè)置標(biāo)題的文字
shapes.title.text='Adding an AutoShape'
#設(shè)置下面新建形狀距所在頁PPT左邊的位置
left=Inches(0.93)
#設(shè)置下面新建形狀距所在頁PPT頂商的位置
top=Inches(3.0)
#設(shè)置插入形狀的寬度
width=Inches(1.75)
#設(shè)置插入形狀的高度
height=Inches(1.0)
#根據(jù)指定位置、大小新建一個五角形
shape=shapes.add_shape(MSO_SHAPE.PENTAGON,left,top,width,height)
#給新建的形狀添加文字
shape.text='Step 1'
#設(shè)置下面新建V形距左邊的位置,0.4是V形的深度
left=left+width-Inches(0.4)
#設(shè)置新建V形的寬度
width=Inches(2.0)
#通過循環(huán)創(chuàng)建4個V形形狀
for n in range(2,6):
#根據(jù)指定的位置、大小新建一個形狀
shape=shapes.add_shape(MSO_SHAPE.CHEVRON,left,top,width,height)
#形狀的文字
shape.text='Step %d'%n
#重新調(diào)整下一個形狀距離左邊的位置
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()
#設(shè)置將要新建的幻燈片版式
title_only_slide_layout=prs.slide_layouts[5]
#根據(jù)上面版式新建一張PPT
slide=prs.slides.add_slide(title_only_slide_layout)
#把新建PPT中所有的形狀集合賦值給變量shapes
shapes=slide.shapes
#設(shè)置標(biāo)題的文字
shapes.title.text='Adding a Table'
#設(shè)計將要新建的表格的行列數(shù)
rows=cols=2
#設(shè)置距離幻燈片左邊及頂端的距離
left=top=Inches(2.0)
#設(shè)置表格的寬度
width=Inches(6.0)
#設(shè)置表格的高度
height=Inches(0.8)
#根據(jù)指定的行列數(shù)、位置、大小新建一個表格
table=shapes.add_table(rows,cols,left,top,width,height).table
#重新調(diào)整每列的寬度
table.columns[0].width=Inches(2.0)
table.columns[1].widht=Inches(4.0)
#設(shè)置表頭的文字
table.cell(0,0).text='Foo'
table.cell(0,1).text='Bar'
#設(shè)置表體單元格里的文字
table.cell(1,0).text='Baz'
table.cell(1,1).text='Qux'
#保存新建的PPT。
prs.save(r'C:/Users/Administrator/Desktop/test.pptx')
上面是python-pptx幾個常用的基本操作,后續(xù)會結(jié)合實際實例再跟大家分享。
總結(jié)
以上是生活随笔為你收集整理的python ppt自动生成目录_利用python-pptx库读写操作PPT,批量自动生成或修改的PPT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。