Python 办公自动化:PPT 高级功能与常用操作
1. 前言
在办公自动化场景中,PowerPoint(PPT)是数据展示和汇报的重要载体。使用 Python 的 python-pptx 库可以高效地生成、修改和提取 PPT 内容,替代繁琐的人工操作。本系列文章将深入探讨 PPT 的高级功能及常用操作点。
本文档涵盖的核心内容包括:
- 预设形状 Shape 的插入与属性配置
- 图表 Chart 的创建与样式定制
- PPT 文档内容的读取与解析
- 幻灯片内图片资源的批量保存
2. 预设形状 Shape
实际上,PPT 文档的内容区主要由各类形状(Shape)组成,包含图片、文本框、视频、表格以及预设几何形状等。预设的普通形状种类非常丰富,涵盖了箭头、流程图符号、基本几何图形等。
2-1 插入形状
使用 slide.shapes.add_shape() 方法可以向幻灯片中插入一个形状。该方法需要指定形状类型、位置坐标及尺寸。
from pptx import Presentation
from pptx.util import Inches, Cm
from pptx.enum.shapes import MSO_SHAPE, MSO_SHAPE_TYPE
# 初始化演示文稿
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[6]) # 空白版式
# 定义插入形状的函数
def insert_shape(slide, left, top, width, height, autoshape_type_id=MSO_SHAPE.CHEVRON, unit=Cm):
"""
幻灯片中添加形状
:param slide: 幻灯片对象
:param left: 左边距
:param top: 上边距
:param width: 宽度
:param height: 高度
:param autoshape_type_id: 形状类型枚举
:param unit: 单位,默认为 Cm (厘米)
:return: 形状对象
"""
shape = slide.shapes.add_shape(
autoshape_type_id=autoshape_type_id,
left=unit(left),
top=unit(top),
width=unit(width),
height=unit(height)
)
return shape
# 示例:添加一个圆角矩形
rectangle = insert_shape(
slide,
left=2, top=2, width=16, height=8,
autoshape_type_id=MSO_SHAPE.ROUNDED_RECTANGLE,
unit=Cm
)
2-2 设置形状属性
获取到形状对象后,我们可以进一步设置它的背景颜色、边框属性等视觉样式。
# 设置形状背景色为白色
rectangle.fill.solid()
rectangle.fill.fore_color.rgb = [, , ]
rectangle.line.color.rgb = [, , ]
rectangle.line.width = Cm()


