本文示例使用python-pptx模組批量生成幻燈片的基本示例
安裝
pip install python-pptx
- 依賴
- Python 2.6, 2.7, 3.3, 3.4, or 3.6
- lxml
- Pillow
- XlsxWriter (to use charting features)
概念
類或關聯屬性 | 簡介 | 相關方法 |
---|---|---|
Presentation | 簡報構造物件 | - |
slide_masters | 幻燈片母版(一個演示檔案可以具有多個幻燈片母版) | - |
slide_layouts | 幻燈片佈局(屬於母版而非prs) | - |
slides | 幻燈片物件組,預設指向第一頁 | add_slide |
shapes | 形狀,類似於ps中的畫布,每個shap(如table)相當於圖層 | add_shape |
placeholders... | 佔位符,字典輔助類 | - |
-
以下等價
prs = Presentation() prs.slide_masters[0].slide_layouts[0] prs.slide_layouts[0]
-
層次關係
Presentation -> slide_masters -> slide_layouts
Presentation -> slides -> shapes -> placeholders | note | text_frame ...
原始碼
from pptx import Presentation
from pptx.util import Inches
# 簡報根物件,使用預設母版
prs = Presentation()
# 幻燈片佈局
title_only_slide_layout = prs.slide_layouts[5]
# prs.slide_masters 幻燈片母版
for i in range(0,5):
# 1. 當前幻燈片物件
slide = prs.slides.add_slide(title_only_slide_layout)
# 2. 當前shapes(背景畫布)物件
shapes = slide.shapes
shapes.title.text = 'Adding a Table pardon110'+str(i)
# 3.配置位置尺寸引數
rows = cols = 2
left = top = Inches(2.0)
width = Inches(6.0)
height = Inches(0.8)
# 4.在(畫布)上新增表格圖層(表格是shapes的一種型別)
table = shapes.add_table(rows, cols, left, top, width, height).table
# 5.table圖層設定
table.columns[0].width = Inches(2.0)
table.columns[1].width = Inches(4.0)
# 6. 表格標題填充
table.cell(0, 0).text = 'Foo'
table.cell(0, 1).text = 'Bar'
# 7. 表格內容填充
table.cell(1, 0).text = 'Baz'
table.cell(1, 1).text = 'Qux'
# # 新增多個表格
# left = Inches(2.0)
# top = Inches(6.0)
# 當前畫布上新增另一個表格
# table = shapes.add_table(rows, cols, left, top, width, height).table
# table.cell(0, 0).text = 'pardon110'
prs.save('test.pptx')