# 安裝 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')