ppt文檔是日常辦公中經常用到的工具,好的ppt文檔需要大量的時間和精力去寫,但是簡單的ppt文檔,可以使用python批量生成;
python-pptx是用於創建和更新PowerPoint文件的python庫。可以用於添加幻燈片,填充文本占位符,添加圖像、文本框,添加操作圖形、標題、主題屬性,流程圖等以及在表格中添加幻燈片等等。
python-pptx的使用可以參考官方文檔:文檔地址
安裝與引入
安裝python-pptx推薦是使用pip方式,直接在終端執行命令:
pip install python-pptx
引入庫,引入庫的名稱不是安裝時的python-pptx,而是:
import pptx
需要了解的一些基本概念:
PPT基本結構在python分別是什麼含義:
Slide:幻燈片,就是演示文稿中每一頁的頁面。
Shape:方框,在每頁幻燈片內插入的方框,可以是形狀,也可以是文本框。
Run:文字塊,一般為較少字符。
Paragraph:段落,通常有序號ㆍ、1.等。
寫操作
1、初始化ppt:
from pptx import Presentation
from pptx.util import Inches,Pt
ppt = Presentation()
2、插入ppt頁面
slide_1 = ppt.slides.add_slide(ppt.slide_layouts[0]) 插入一頁幻燈片,使用布局0
shape_1 = slide_1.shapes.placeholders # 獲取此頁ppt的所有占位符
shape_1[0].text = ‘占位符’ # 對shape[0]寫入內容
shape_1[1].text = ‘Python操作PPT’ # 對shape[1]寫入內容
3、保存文件:
ppt.save(‘python.pptx’)
完整代碼:
def create():'''創建ppt'''from pptx import Presentationfrom pptx.util import Inches,Ptppt = Presentation() # 初始化ppt#------------------# 第一頁PPTslide_1 = ppt.slides.add_slide(ppt.slide_layouts[0]) # 插入一頁幻燈片,使用布局0shape_1 = slide_1.shapes.placeholders # 獲取此頁ppt的所有占位符shape_1[0].text = '占位符' # 對shape[0]寫入內容shape_1[1].text = 'Python操作PPT' # 對shape[1]寫入內容#------------------##------------------# 第二頁PPTslide_3 = ppt.slides.add_slide(ppt.slide_layouts[5]) # 插入一頁幻燈片,使用布局5slide_3.shapes.placeholders[0].text = 'test' # 對第三頁PPT的第一個shape寫入內容picture = slide_3.shapes.add_picture('picture.jpg',left=Inches(3.2),top=Inches(2),width=Inches(3.5),height=Inches(5)) # 插入圖片#------------------##------------------# 第四頁PPTslide_4 = ppt.slides.add_slide(ppt.slide_layouts[6]) # 插入一頁幻燈片,使用布局6table = slide_4.shapes.add_table(rows=2,cols=2,left=Inches(2),top=Inches(2),width=Inches(5),height=Inches(2)).table # 插入表格table.columns[0].width = Inches(2) # 設置第0列的寬度table.columns[1].width = Inches(3) # 設置第1列的寬度#添加內容table.cell(0,0).text = 'ppt'table.cell(0,1).text = '對應庫'table.cell(1,0).text = 'Python'table.cell(1,1).text = 'python-pptx'#------------------#ppt.save('python.pptx')
更新操作:
先創建好一個ppt,調整好格式,然後通過python修改
獲取各種占位符的方法集合
獲取此頁ppt的所有占位符:shape = slide.shapes.placeholders # 占位符:placeholders
對shape[num]寫入內容:shape[num].text = ‘xx’
獲取此頁ppt標題的shape:title_shape = slide.shapes.title
對標題shape寫入內容:title_shape.text = ‘xx’
在shape[num]添加段落:para = shape[num].text_frame.add_paragraph()
對段落寫入內容:para.text = ‘xx’
設置段落字體是否粗體:para.font.blod = True
設置段落字體大小:para.font.size = Pt(num)
設置段落是否添加字體下劃線:para.font.underline = True
插入文本框:textBox = slide.shapes.add_textbox(left,top,width,height)
插入圖片:picture = slide.shapes.add_picture(‘圖片’,left,top,width,height)
插入表格:table = slide.shapes.add_table(rows=num,cols=num,left,top,width,height).table
設置表格第n列的寬度:table.columns[n].width = Inches(num)
表格單元格寫入內容:table.cell(x,y).text = ‘xx’