python操作ppt

2003版的PowerPoint的文件格式是ppt,而在07以后的版本均为pptx,所以说这都是指一般的PPT文件

ppt格式的PPT各版本的PowerPoint均可以打开,但pptx一般情况下只能用07以后的版本打开,除此以外,也可以通过下载安装官方提供的兼容包,来使得我们的03版可以打开pptx文件,再或者把pptx格式改为ppt格式,改写方法可以在高版本软件中进行另存为ppt格式的,粗暴一点的可以直接把文件的后缀改成ppt,还可以使用在线工具(如office-converter)。

window系统下python操作后缀为ppt的文件,采用win32com来实现,具体如下:

1.示例代码

import win32com
from win32com.client import Dispatch, constants
ppt = win32com.client.Dispatch('PowerPoint.Application')
ppt.Visible = 1
pptSel = ppt.Presentations.Open("C:\\web\\phpStudy\\WWW\\ppt\\Russia\\1.pptx")
# win32com.client.gencache.EnsureDispatch('PowerPoint.Application')

#get the ppt's pages
slide_count = pptSel.Slides.Count
for i in range(1,slide_count + 1):
  shape_count = pptSel.Slides(i).Shapes.Count
  print shape_count
  for j in range(1,shape_count + 1):
    if pptSel.Slides(i).Shapes(j).HasTextFrame:
      s = pptSel.Slides(i).Shapes(j).TextFrame.TextRange.Text
      print (s.encode('utf-8')+ "\n")

ppt.Quit()

而操作pptx文件,python有专门的包python-pptx,具体如下:

1.python-pptx官方文档

python-pptx — python-pptx 0.6.21 documentation

2.python-pptx安装

pip install python-pptx

3.示例代码

import pptx
from pptx import Presentation

prs = Presentation("统计学习方法PPT.pptx")

for i,slide in enumerate(prs.slides):
    if i == 5:
        for shape in slide.shapes:
            if shape.has_text_frame:
                text_frame = shape.text_frame
                for paragraph in text_frame.paragraphs:
                    print(paragraph.text)
"""
注意:该方法和上述4)中的方法一摸一样。上述方法是直接获取Shpae中的文字内容;
下面这个更灵活,先获取每个Shape,然后在获取每个Shape中的paragraph;
下面方式更好:因为我们可以针对paragraph,写一个判断条件,只获取第几个paragraph;

4.关于pptx的更详细介绍

详解 Python 操作 PPT 的各种骚操作!_51CTO博客_python操作PPT

Installing — python-pptx 0.6.21 documentation

你可能感兴趣的:(数据处理,powerpoint)