python自动化系列之python操作pptx文件

简介: python自动化系列之python操作pptx文件

ppt文档是日常办公中经常用到的工具,好的ppt文档需要大量的时间和精力去写,但是简单的ppt文档,可以使用python批量生成;

python-pptx介绍

python-pptx是用于创建和更新PowerPoint文件的python库。可以用于添加幻灯片,填充文本占位符,添加图像、文本框,添加操作图形、标题、主题属性,流程图等以及在表格中添加幻灯片等等。

python-pptx的使用可以参考官方文档:文档地址

python-pptx的简单使用:

  • 安装与引入

安装python-pptx推荐是使用pip方式,直接在终端执行命令:

 >pip install python-pptx

引入库,引入库的名称不是安装时的python-pptx,而是:
import pptx
  • 需要了解的一些基本概念:

PPT基本结构在python分别是什么含义:
Slide:幻灯片,就是演示文稿中每一页的页面。
Shape:方框,在每页幻灯片内插入的方框,可以是形状,也可以是文本框。
Run:文字块,一般为较少字符。
Paragraph:段落,通常有序号ㆍ、1.等。

  • 写操作

1、初始化ppt:

from pptx import Presentation
from pptx.util import Inches,Pt
ppt = Presentation()
2、插入ppt页面
slide_1 = ppt.slides.add_slide(ppt.slide_layouts[0]) 插入一页幻灯片,使用布局0
shape_1 = slide_1.shapes.placeholders   # 获取此页ppt的所有占位符
shape_1[0].text = '占位符'   # 对shape[0]写入内容
shape_1[1].text = 'Python操作PPT'   # 对shape[1]写入内容

3、保存文件:
>ppt.save('python.pptx')

完整代码:
```
def create():
'''创建ppt'''
from pptx import Presentation
from pptx.util import Inches,Pt
ppt = Presentation()   # 初始化ppt
#------------------# 第一页PPT
slide_1 = ppt.slides.add_slide(ppt.slide_layouts[0])   # 插入一页幻灯片,使用布局0
shape_1 = slide_1.shapes.placeholders   # 获取此页ppt的所有占位符
shape_1[0].text = '占位符'   # 对shape[0]写入内容
shape_1[1].text = 'Python操作PPT'   # 对shape[1]写入内容
#------------------#
#------------------# 第二页PPT
slide_3 = ppt.slides.add_slide(ppt.slide_layouts[5])   # 插入一页幻灯片,使用布局5
slide_3.shapes.placeholders[0].text = 'test'   # 对第三页PPT的第一个shape写入内容
picture = slide_3.shapes.add_picture('picture.jpg',left=Inches(3.2),top=Inches(2),width=Inches(3.5),height=Inches(5))   # 插入图片
#------------------#
#------------------# 第四页PPT
slide_4 = ppt.slides.add_slide(ppt.slide_layouts[6])   # 插入一页幻灯片,使用布局6
table = slide_4.shapes.add_table(rows=2,cols=2,left=Inches(2),top=Inches(2),width=Inches(5),height=Inches(2)).table   # 插入表格
table.columns[0].width = Inches(2)   # 设置第0列的宽度
table.columns[1].width = Inches(3)   # 设置第1列的宽度
#添加内容
table.cell(0,0).text = 'ppt'
table.cell(0,1).text = '对应库'
table.cell(1,0).text = 'Python'
table.cell(1,1).text = 'python-pptx'
#------------------#
ppt.save('python.pptx')

```
  • 更新操作:

先创建好一个ppt,调整好格式,然后通过python修改
image.png

  • 获取各种占位符的方法集合
获取此页ppt的所有占位符:shape = slide.shapes.placeholders # 占位符:placeholders
对shape[num]写入内容:shape[num].text = 'xx'
获取此页ppt标题的shape:title_shape = slide.shapes.title
对标题shape写入内容:title_shape.text = 'xx'
在shape[num]添加段落:para = shape[num].text_frame.add_paragraph()
对段落写入内容:para.text = 'xx'
设置段落字体是否粗体:para.font.blod = True
设置段落字体大小:para.font.size = Pt(num)
设置段落是否添加字体下划线:para.font.underline = True
插入文本框:textBox = slide.shapes.add_textbox(left,top,width,height)
插入图片:picture = slide.shapes.add_picture('图片',left,top,width,height)
插入表格:table = slide.shapes.add_table(rows=num,cols=num,left,top,width,height).table
设置表格第n列的宽度:table.columns[n].width = Inches(num)
表格单元格写入内容:table.cell(x,y).text = 'xx'
相关文章
|
9天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
107 60
|
1天前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
22天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
38 7
|
1月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
2月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
110 3
|
2月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
94 2
|
2月前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
2月前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
2月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
49 1