Python 办公自动化实战:使用 python-pptx 操作 PPT
1. 前言
在前文简单介绍了 PPT 的文档结构,并使用 python-pptx 依赖库完成对 PPT 文档最基本的操作后,本文将深入讲解更复杂的多媒体元素处理。作为 PPT 自动化系列篇的第二部分,重点覆盖以下内容:
- 表格 (Table):插入、调整样式、合并单元格
- 图片 (Image):静态图与 GIF 动态图的等比例插入
- 视频 (Video):视频嵌入与封面图提取
环境准备
在开始之前,请确保已安装必要的依赖库:
pip install python-pptx
pip install pillow
pip install moviepy
其中 moviepy 用于处理视频帧和获取视频信息,pillow 用于处理图片尺寸。
2. 表格 Table
实例化一个幻灯片 Slide 对象后,即可调用相关方法插入表格。
2-1 插入表格基础
方法签名如下:
slide.shapes.add_table(rows, cols, left, top, width, height)
参数说明:
rows: 表格行数cols: 表格列数left: 左边距(单位通常为厘米或英寸)top: 上边距width: 表格总宽度height: 表格总高度
返回值类型为 pptx.shapes.graphfrm.GraphicFrame,其 .table 属性即为真正的表格对象 pptx.table.Table。
from pptx.util import Cm
def insert_table(slide, rows, cols, left, top, width, height):
"""
幻灯片中插入一个表格
:param slide: 幻灯片对象
:param rows: 行数
:param cols: 列数
:param left: 左边距 (cm)
:param top: 上边距 (cm)
:param width: 表格宽度 (cm)
:param height: 表格高度 (cm)
:return: 表格对象
"""
# 插入一个表格
table = slide.shapes.add_table(rows, cols, Cm(left), Cm(top), Cm(width), Cm(height)).table
return table
# 示例:创建一个空白幻灯片并插入表格
# slide = add_slide(self.presentation, 6)
table = insert_table(slide, 3, 3, 3, 5, 13.6, 5)


