用Python自动化办公操作PPT,掌握这些技巧没压力!
用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 osppt = 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():# 打开pptppt = Presentation('python-pptx 多页待删除模板.pptx')# 获取所有页slides = ppt.slidesnumber_pages = len(slides)print("删除前ppt一共",number_pages,"页面")# 设置需要删除的页面数量delPageNums = 3# 进行删除操作(每次都删除第一张ppt)for index in range(delPageNums):del_slide(ppt,0)# 再次获取所有页slides = ppt.slidesnumber_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)
# 添加文字段落
new_paragraph1 = slide.shapes.add_textbox(left=left, top=top, width=width, height=height).text_frame
# 设置段落内容
new_paragraph1.paragraphs[0].text = singleLineContent
# 设置文字大小
new_paragraph1.paragraphs[0].font.size = Pt(15)# 添加多行# 设置添加文字框的位置以及大小
left, top, width, height = Cm(16.9), Cm(3), Cm(12), Cm(3.6)
# 添加文字段落
new_paragraph2 = slide.shapes.add_textbox(left=left, top=top, width=width, height=height).text_frame
# 设置段落内容
new_paragraph2.paragraphs[0].text = multiLineContent
# 设置文字大小
new_paragraph2.paragraphs[0].font.size = Pt(15)# 保存ppt
ppt.save('4.1 添加文字.pptx')
效果如下:
3.1.2 设置文字框样式与文字样式
示例代码:
from pptx import Presentation
from pptx.util import Pt,Cm
from pptx.dml.color import RGBColor
from pptx.enum.text import MSO_VERTICAL_ANCHOR, PP_PARAGRAPH_ALIGNMENT
from pptx.enum.text import PP_ALIGN# 打开已存在ppt
ppt = Presentation('4. python-pptx操作模板.pptx')# 获取需要添加文字的页面对象
slide = ppt.slides[0]# 设置添加文字框的位置以及大小
left, top, width, height = Cm(16.9), Cm(1), Cm(12), Cm(1.2)
# 添加文字框 slide.shapes.add_textbox(距离左边,距离顶端,宽度,高度)
textBox = slide.shapes.add_textbox(left=left, top=top, width=width, height=height)# 调整文本框背景颜色
textBoxFill = textBox.fill
textBoxFill.solid() # 纯色填充
textBoxFill.fore_color.rgb = RGBColor(187, 255, 255)# 文本框边框样式调整
line = textBox.line
line.color.rgb = RGBColor(0, 255, 0)
line.width = Cm(0.1)# 获取文本框对象
tf = textBox.text_frame# 文本框样式调整
tf.margin_bottom = Cm(0.1) # 下边距
tf.margin_left = 0 # 左边距
tf.vertical_anchor = MSO_VERTICAL_ANCHOR.BOTTOM # 对齐文本方式:底端对齐
tf.word_wrap = True # 文本框的文字自动对齐# 设置内容
tf.paragraphs[0].text = '这是一段文本框里的文字'# 字体样式调整
tf.paragraphs[0].alignment = PP_ALIGN.CENTER # 对齐方式
tf.paragraphs[0].font.name = '微软雅黑' # 字体名称
tf.paragraphs[0].font.bold = True # 是否加粗
tf.paragraphs[0].font.italic = True # 是否斜体
tf.paragraphs[0].font.color.rgb = RGBColor(255, 0, 0) # 字体颜色
tf.paragraphs[0].font.size = Pt(20) # 字体大小# 保存ppt
ppt.save('4.1.2 设置文字框与字体样式.pptx')
效果如下:
3.2 python-pptx 添加表格并设置样式
示例代码:
from pptx import Presentation
from pptx.util import Pt,Cm
from pptx.dml.color import RGBColor
from pptx.enum.text import MSO_ANCHOR
from pptx.enum.text import PP_ALIGN# 设置需要添加到哪一页
n_page = 0# 打开已存在ppt
ppt = Presentation('4. python-pptx操作模板.pptx')# 获取slide对象
slide = ppt.slides[n_page]# 设置表格位置和大小
left, top, width, height = Cm(6), Cm(12), Cm(13.6), Cm(5)
# 表格行列数,和大小
shape = slide.shapes.add_table(6, 7, left, top, width, height)
# 获取table对象
table = shape.table# 设置列宽
table.columns[0].width = Cm(3)
table.columns[1].width = Cm(2.3)
table.columns[2].width = Cm(2.3)
table.columns[3].width = Cm(1.3)
table.columns[4].width = Cm(1.3)
table.columns[5].width = Cm(1.3)
table.columns[6].width = Cm(2.1)# 设置行高
table.rows[0].height = Cm(1)# 合并首行
table.cell(0, 0).merge(table.cell(0, 6))# 填写标题
table.cell(1, 0).text = "时间"
table.cell(1, 1).text = "阶段"
table.cell(1, 2).text = "执行用例"
table.cell(1, 3).text = "新增问题"
table.cell(1, 4).text = "问题总数"
table.cell(1, 5).text = "遗留问题"
table.cell(1, 6).text = "遗留致命/" \"严重问题"# 填写变量内容
table.cell(0, 0).text = "产品1"
content_arr = [["4/30-5/14", "DVT1", "20", "12", "22", "25", "5"],["5/15-5/21", "DVT1", "25", "32", "42", "30", "8"],["5/22-6/28", "DVT1", "1", "27", "37", "56", "12"],["5/22-6/28", "DVT1", "1", "27", "37", "56", "12"]]# 修改表格样式
for rows in range(6):for cols in range(7):# Write column titlesif rows == 0:# 设置文字大小table.cell(rows, cols).text_frame.paragraphs[0].font.size = Pt(15)# 设置字体table.cell(rows, cols).text_frame.paragraphs[0].font.name = '微软雅黑'# 设置文字颜色table.cell(rows, cols).text_frame.paragraphs[0].font.color.rgb = RGBColor(255, 255, 255)# 设置文字左右对齐table.cell(rows, cols).text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER# 设置文字上下对齐table.cell(rows, cols).vertical_anchor = MSO_ANCHOR.MIDDLE# 设置背景为填充table.cell(rows, cols).fill.solid()# 设置背景颜色table.cell(rows, cols).fill.fore_color.rgb = RGBColor(34, 134, 165)elif rows == 1:table.cell(rows, cols).text_frame.paragraphs[0].font.size = Pt(10)table.cell(rows, cols).text_frame.paragraphs[0].font.name = '微软雅黑' # 字体名称table.cell(rows, cols).text_frame.paragraphs[0].font.color.rgb = RGBColor(0, 0, 0)table.cell(rows, cols).text_frame.paragraphs[0].alignment = PP_ALIGN.CENTERtable.cell(rows, cols).vertical_anchor = MSO_ANCHOR.MIDDLEtable.cell(rows, cols).fill.solid()table.cell(rows, cols).fill.fore_color.rgb = RGBColor(204, 217, 225)else:table.cell(rows, cols).text = content_arr[rows - 2][cols]table.cell(rows, cols).text_frame.paragraphs[0].font.size = Pt(10)table.cell(rows, cols).text_frame.paragraphs[0].font.name = '微软雅黑' # 字体名称table.cell(rows, cols).text_frame.paragraphs[0].font.color.rgb = RGBColor(0, 0, 0)table.cell(rows, cols).text_frame.paragraphs[0].alignment = PP_ALIGN.CENTERtable.cell(rows, cols).vertical_anchor = MSO_ANCHOR.MIDDLEtable.cell(rows, cols).fill.solid()table.cell(rows, cols).fill.fore_color.rgb = RGBColor(204, 217, 225)ppt.save('4.2 python-pptx 添加表格并设置样式.pptx')
3.3 python-pptx 添加图表并设置样式
示例代码:
from pptx import Presentation
from pptx.util import Pt,Cm
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE# 设置需要添加到哪一页
n_page = 0# 打开已存在ppt
ppt = Presentation('4. python-pptx操作模板.pptx')# 获取slide对象
slide = ppt.slides[n_page]# 初始化图表
chart_data = ChartData()# 填充需要添加的内容
content_arr = [["4/30-5/14", "DVT1", "20", "12", "22", "25", "5"],["5/15-5/21", "DVT1", "25", "32", "42", "30", "8"],["5/22-6/28", "DVT1", "1", "27", "37", "56", "12"],["5/22-6/28", "DVT1", "1", "27", "37", "56", "12"]]# 填充图表
chart_data.categories = [content_arr[0][0], content_arr[1][0], content_arr[2][0], content_arr[3][0]]
chart_data.add_series("问题总数", (content_arr[0][4], content_arr[1][4], content_arr[2][4], content_arr[3][4]))
chart_data.add_series("遗留问题总数", (content_arr[0][5], content_arr[1][5], content_arr[2][5], content_arr[3][5]))
chart_data.add_series("遗留致命严重\n问题总数", (content_arr[0][6], content_arr[1][6], content_arr[2][6], content_arr[3][6]))# 设置位置
left, top, width, height = Cm(6), Cm(10), Cm(16.1), Cm(7.5)
# 添加图表
chart = slide.shapes.add_chart(XL_CHART_TYPE.LINE, left, top, width, height, chart_data
).chartchart.has_legend = True
chart.legend.include_in_layout = False
# chart.series[0].smooth = True # 是否平滑
# chart.series[1].smooth = True
# chart.series[2].smooth = True
chart.font.size = Pt(10) # 文字大小ppt.save('4.3 python-pptx 添加图表并设置样式.pptx')
print('折线图添加完成')
效果图:
好了,以上是比较详细的操作方法,希望能给大家有点帮助
关注小编或收藏,学习起来更方便!
用Python自动化办公操作PPT,掌握这些技巧没压力!相关推荐
- 如何用python实现自动化办公_python自动化办公操作PPT的实现
1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍.这里提前做一个说明:python操作PPT,最好是我们提前设计 ...
- Python自动化办公:ppt文件操作教程
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前和大家介绍了python操作excel和word文件的教程,今天来和大家介绍下python对ppt的操作. 在公众号后台 ...
- Python自动化办公 - 对PPT的操作(Python-pptx的基本使用)
1. 安装模块 Windows用户打开命令行输入:pip install python-pptx Mac用户打开终端/Terminal输入:pip3 install python-pptx 使用win ...
- Python自动化办公PPT-写入内容
1. 安装模块 Windows用户打开命令行输入:pip install python-pptx Mac用户打开终端/Terminal输入:pip3 install python-pptx 使用win ...
- python 自动化办公之(三)PPT操作
python 自动化办公之(三)PPT操作 一.安装ppt库 二.接口介绍 三.程序示例 一.安装ppt库 pip install python-pptx 二.接口介绍 #导入库 from pptx ...
- python自动化办公之python操作PPT
python自动化文章一直深受广大python爱好者的青睐.基于此,我花了整整一周时间真理出来的python自动化文档手册,涉及到六个章节(如下图所示): ① python使用openpyxl操作ex ...
- 好用到爆的Python自动化办公教程pdf,Python × Excel × Word × PPT 一次搞定
在这个自动化时代,我们有很多重复无聊的工作要做.想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松.那么在本文中,我将向您介绍一个好用到爆的Python自动化办公教程pdf,P ...
- python自动化办公之爬取HTML图片写入PPT实战
python自动化办公之批量图片导入PPT 昨天,大Boss找到一个网页,觉得里面的图片内容特别好,想把它下载下来作为学习资料,整理整理教导下属.但是,手动一张一张的保存图片太慢了,问我可不可以下载下 ...
- Python自动化办公:word文件操作教程
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家完整的介绍了用python操作excel的几个库:xlrd.xlwt.openpyxl. 山月也已经整理好了,还没 ...
- Python自动化办公word、ppt转pdf
Python自动化办公,在工作的过程中偶尔会遇到大量的word.ppt转pdf的情况,针对这情况,归纳了一份Python使用,希望可以加大办公的效率! import os import comtype ...
最新文章
- 百度 和 AI教父Hinton 的故事
- Linux入门时必学文件处理个命令
- Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
- 阿里云物联网生活平台简介
- c语言扫描图片的坐标,tc 如何在指定坐标处 输出bmp图片??
- 树莓派外设开发基础(wiringPi库)
- maven的使用--初级篇
- 计算机图像处理发展前景,数字图像处理发展前景
- 【学习笔记】C# 动态系统托盘图标的实现 - NotifyIcon控件
- rda分析怎么做_RDA分析
- 2023年太原理工大学水利工程考研考情与难度、参考书前辈备考经验
- office插件开发_OneKeyTools:强大PPT插件
- mysql查询的结果拼接字符串_MySql查询结果拼接成字符串
- leetcode 58. 最后一个单词的长度(Length of Last Word)
- 车载以太网第二弹-实锤|SOME/IP概述及TC8 SOME/IP 测试实践
- 用dd实现linux硬盘备份
- 奖励稀疏_好奇心解决稀疏奖励任务
- 安卓webview和h5交互
- 周末去哪儿架构师跟你聊:大数据平台快速解决方案
- 刷问卷星调查问卷_如何通过回答快速调查问卷从Google获得免费资金