利用 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:過濾無文字的形狀(如圖片、圖表)。Visible 並加入錯誤處理。