python操作PPT-----讀取及寫入PPT內容


# 安裝 pip install python-pptx

from pptx import Presentation
from pptx.util import Cm, Pt


# 打開ppt
prs = Presentation('測試.pptx')
# 獲取slide幻燈片
for slide in prs.slides:
    # 獲取形狀shape
    for shape in slide.shapes:
        if shape.has_text_frame:  # 判斷是否有文字
            text_frame = shape.text_frame  # 獲取文字框
            print(text_frame.text)
            # 從shape中找段落paragraphs
            for paragraph in text_frame.paragraphs:
                print(paragraph.text)


# 寫入內容
prs = Presentation('空白演示.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[0])  # 獲取第一個母版
for shape in slide.placeholders:  # 獲取這一頁的所有占位符
    phf = shape.placeholder_format
    print(f'{phf.idx}--{shape.name}--{phf.type}')
    # 要寫入的內容  shape.text=字符串
    shape.text = f'{phf.idx}--{phf.type}'
prs.save('test.pptx')  # 保存文件路徑


# 根據占位符ID確定要填寫哪里
prs = Presentation('空白演示.pptx')
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
# slide.placeholders[占位符ID]
center_title = slide.placeholders[0]  # 主標題
sub_title = slide.placeholders[1]  # 副標題
# 修改占位符里的內容
center_title.text = '歡迎你!'
sub_title.text = '熱烈歡迎來到xxx'
prs.save('test.pptx')  # 保存文件路徑


# 添加段落paragraph
prs = Presentation()
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
title_shape = shapes.title
body_shape = shapes.placeholders[1]
title_shape.text = '添加項目符號列表頁'
tf = body_shape.text_frame
tf.text = '帶圓點的項目符號行1'
# 添加一個段落
p = tf.add_paragraph()
p.text = '帶圓點的項目符號行2'
# 設定層級關系  0為最頂層
p.level = 1
p = tf.add_paragraph()
p.text = '帶圓點的項目符號行2'
p.level = 2
prs.save('test2.pptx')


# 添加文本框
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = width = height = Cm(3)
# slide.shapes.add_textbox(距離左邊,距離頂端,寬度,高度)
text_box = slide.shapes.add_textbox(left, top, width, height)
tf = text_box.text_frame
tf.text = '這是一段文本框里的文字'
p = tf.add_paragraph()
p.text = '這是第二段文字,加粗,字號20'
p.font.bold = True
p.font.size = Pt(20)
prs.save('test3.pptx')


# 添加圖片
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = Cm(3)
# slide.shapes.add_picture(圖片路徑,距離左邊,距離頂端,寬度,高度)
pic = slide.shapes.add_picture('a.png', left, top)  # 原圖片大小
width = Cm(5)
height = Cm(5.5)
pic = slide.shapes.add_picture('a.png', left, top, width=width, height=height)  # 指定圖片大小
prs.save('test4.pptx')


# 添加表格
prs = Presentation()
blank_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(blank_slide_layout)
rows, cols = 3, 2  # 要添加的表格的行數、列數
left = top = Cm(3)
width = Cm(10)
height = Cm(6)
table = slide.shapes.add_table(rows, cols, left, top, width, height).table
table.columns[0].width = Cm(4)  # 第一列寬
table.columns[1].width = Cm(3)  # 第二列寬
table.rows[0].height = Cm(2)  # 第一行高
data = [
    ['a', 1],
    ['b', 2],
    ['c', 3],
]
for row in range(rows):
    for col in range(cols):
        table.cell(row, col).text = str(data[row][col])
prs.save('test5.pptx')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM