首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 透過 COM 自動化提取 PowerPoint 簡報所有文字內容

     編輯:更多程式設計知識

利用 pywin32 呼叫 Windows COM 介面,可自動化開啟 PowerPoint 並提取所有投影片的文字。需在安裝 Office 的 Windows 環境下執行。

完整程式碼


import win32com.client

ppt = win32com.client.Dispatch('PowerPoint.Application')
ppt.Visible = 1

presentation = ppt.Presentations.Open(r'C:\1.ppt')
win32com.client.gencache.EnsureDispatch('PowerPoint.Application')

with open(r'C:\1.txt', 'w', encoding='utf-8') as f:
    for i in range(1, presentation.Slides.Count + 1):
        slide = presentation.Slides(i)
        for j in range(1, slide.Shapes.Count + 1):
            shape = slide.Shapes(j)
            if shape.HasTextFrame:
                text = shape.TextFrame.TextRange.Text
                f.write(text + '\n')

ppt.Quit()

關鍵點說明

  • Dispatch('PowerPoint.Application'):啟動 PowerPoint 進程。
  • Presentations.Open:開啟指定 .ppt/.pptx 檔案。
  • Slides.Count / Shapes.Count:COM 集合索引從 1 開始。
  • HasTextFrame:過濾無文字的形狀(如圖片、圖表)。
  • 輸出編碼設為 UTF-8 避免中文亂碼。

應用場景

  • 批次提取簡報文字建立搜尋索引。
  • 自動化文件審核、關鍵字檢查。
  • 簡報內容遷移至其他系統(CMS、Wiki)。

注意事項

  • 必須在安裝 PowerPoint 的 Windows 機器上執行。
  • 大量檔案處理時建議關閉 Visible 並加入錯誤處理。
  • 新版 Office 可能需管理員權限或調整巨集安全性設定。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved