用Python自动化办公操作PPT,掌握这些技巧没压力!
大数据时代,实现数字化办公越发显得尤为重要,它可以帮助公司优化管理,提升效率,强化决策的一致性。
那我们首先来看看PPT办公自动化能干什么?
- 它可以代替你自动制作PPT
- 它可以减少你用于调整PPT格式的时间
- 它可以让数据报告风格一致
了解了PPT办公自动化在工作中的重要作用,接下来我们详细讲讲如何用Python实现PPT的办公自动化。
一、使用win32com操作ppt
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape.copy
1.1pip安装win32com
1.2 win32com复制ppt模板
有时候我们需要对ppt的模板进行复制,然后再添加相应内容,由于python-pptx对复制模板也没有很好的支持。所以我们用win32com对模板页进行复制,然后再用python-pptx增加ppt内容。
参考官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.slide.copy
先准备好一张模板: 2.2 win32 ppt测试.pptx
输入代码:
import win32com
from win32com.client import Dispatch
import os
ppt = Dispatch('PowerPoint.Application')
# 或者使用下面的方法,使用启动独立的进程:
# ppt = DispatchEx('PowerPoint.Application')
# 如果不声明以下属性,运行的时候会显示的打开word
ppt.Visible = 1 # 后台运行
ppt.DisplayAlerts = 0 # 不显示,不警告
# 创建新的PowerPoint文档
# pptSel = ppt.Presentations.Add()
# 打开一个已有的PowerPoint文档
pptSel = ppt.Presentations.Open(os.getcwd() + "\\" + "2.2 win32 ppt测试.pptx")
# 复制模板页
pptSel.Slides(1).Copy()
#设置需要复制的模板页数
pageNums = 10
# 粘贴模板页
for i in range(pageNums):
pptSel.Slides.Paste()
# pptSel.Save() # 保存
pptSel.SaveAs(os.getcwd() + "\\" + "win32_copy模板.pptx") # 另存为
pptSel.Close() # 关闭 PowerPoint 文档
ppt.Quit() # 关闭 office
效果如下:
二、python-pptx 创建PPT、复制页面
2.1 pip安装python-pptx
安装方法:
2.2 python-pptx 复制页面
使用python-pptx进行复制没有找到合适的方法,有以下两种解决办法:
- 使用win32com对ppt模板进行复制
- 增加模板ppt数量,然后使用python-pptx对不需要的模板页进行删减操作
2.3 python-pptx 删除页面
python-pptx 多页待删除模板.pptx:
示例代码:
from pptx import Presentation
# 删除某一页ppt
def del_slide(prs,index):
slides = list(prs.slides._sldIdLst)
prs.slides._sldIdLst.remove(slides[index])
# 3.3 python-pptx 删除页面
def fun3_3():
# 打开ppt
ppt = Presentation('python-pptx 多页待删除模板.pptx')
# 获取所有页
slides = ppt.slides
number_pages = len(slides)
print("删除前ppt一共",number_pages,"页面")
# 设置需要删除的页面数量
delPageNums = 3
# 进行删除操作(每次都删除第一张ppt)
for index in range(delPageNums):
del_slide(ppt,0)
# 再次获取所有页
slides = ppt.slides
number_pages = len(slides)
print("删除后ppt一共",number_pages,"页面")
ppt.save('python-pptx 多页已删除模板.pptx')
print('生成完毕')
if __name__ == '__main__':
fun3_3()
执行效果:
2.4 新建页面
示例代码:
from pptx import Presentation
# 新建ppt
ppt = Presentation()
# 新建页面
slide = ppt.slides.add_slide(ppt.slide_layouts[0])
# 保存ppt
ppt.save('新建ppt.pptx')
效果如下:
三、python-pptx 插入文字、表格、形状并设置样式
3.1 python-pptx 添加文字并设置样式
3.1.1添加单行文字与多行文字
示例代码:
from pptx import Presentation
from pptx.util import Pt,Cm
# 打开已存在ppt
ppt = Presentation('4. python-pptx操作模板.pptx')
# 设置添加到当前ppt哪一页
n_page = 0
singleLineContent = "我是单行内容"
multiLineContent = \
"""我是多行内容1
我是多行内容2
我是多行内容3
"""
# 获取需要添加文字的页面对象
slide = ppt.slides[n_page]
# 添加单行内容
# 设置添加文字框的位置以及大小
left, top, width, height = Cm(16.9), Cm(1), Cm(12), Cm(1.2)