用 pttx 模組批量建立幻燈片

pardon110發表於2019-12-04

本文示例使用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')

效果

用pttx模組批量建立幻燈片

文件

https://python-pptx.readthedocs.io/en/late...

相關文章