在 PowerPoint 中对形状进行分组有助于简化复杂的编辑任务,尤其适用于批量修改格式或定位。分组后可一次性调整整体,大大提升效率;而取消分组则能恢复对单个形状的独立操控,便于进行精细化编辑与个性化设置。本文将指导如何运用 Spire.Presentation for Python 在 PowerPoint 中实现形状的分组与取消分组。
安装 Spire.Presentation for Python
本教程需要 Spire.Presentation for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Presentation for Python
Python 分组 PowerPoint 中的形状
Spire.Presentation for Python 提供了 ISlide.GroupShapes(shapeList: List) 方法,用于在特定幻灯片上组合两个或多个形状。具体操作步骤如下:
- 创建一个 Presentation 类的对象。
- 使用 Presentation.Slides[0] 属性获取第一张幻灯片。
- 通过 ISlide.Shapes.AppendShape() 方法向幻灯片中添加两个形状。
- 创建一个列表来存储需要进行组合的形状并将这两个形状添加到该列表中。
- 使用 ISlide.GroupShapes(shapeList: List) 方法将这两个形状进行组合。
- 通过 Presentation.SaveToFile() 方法保存处理后的文档。
- Python
from spire.presentation import *
# 创建一个Presentation对象
ppt = Presentation()
# 获取演示文稿中的第一张幻灯片
slide = ppt.Slides[0]
# 添加一个填充为天蓝色的矩形
rectangle = slide.Shapes.AppendShape(ShapeType.Rectangle, RectangleF.FromLTRB (250, 180, 450, 220))
rectangle.Fill.FillType = FillFormatType.Solid
rectangle.Fill.SolidColor.KnownColor = KnownColors.SkyBlue
# 设置矩形边框线宽为0.1单位
rectangle.Line.Width = 0.1
# 添加一个填充为浅粉色的丝带形状
ribbon = slide.Shapes.AppendShape(ShapeType.Ribbon2, RectangleF.FromLTRB (290, 155, 410, 235))
ribbon.Fill.FillType = FillFormatType.Solid
ribbon.Fill.SolidColor.KnownColor = KnownColors.LightPink
# 设置矩形边框线宽为0.1单位
ribbon.Line.Width = 0.1
# 将这两个形状添加到列表中
shape_list = []
shape_list.append(rectangle)
shape_list.append(ribbon)
# 组合列表中的形状
slide.GroupShapes(shape_list)
# 保存文档
ppt.SaveToFile("组合.pptx", FileFormat.Pptx2013)
# 释放对象
ppt.Dispose()
Python 取消分组 PowerPoint 中的形状
要取消 PowerPoint 文档中的组合形状,您可以遍历文档中的所有幻灯片以及每张幻灯片上的所有形状,找出已分组的形状并使用 ISlide.Ungroup(groupShape: GroupShape) 方法将其取消组合。具体的步骤如下:
- 创建一个 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文档。
- 遍历文档中的所有幻灯片以及遍历每张幻灯片上的所有形状。
- 判断当前形状是否属于 GroupShape 类型,如果是,则使用 ISlide.Ungroup(groupShape: GroupShape) 方法将其取消组合。
- 使用 Presentation.SaveToFile() 方法保存处理后的文档。
- Python
from spire.presentation import *
# 创建一个Presentation类的对象
ppt = Presentation()
# 加载一个包含组合形状的PowerPoint文档
ppt.LoadFromFile("组合.pptx")
# 遍历文档中的所有幻灯片
for i in range(ppt.Slides.Count):
slide = ppt.Slides[i]
# 遍历该幻灯片上的所有形状
for j in range(slide.Shapes.Count):
shape = slide.Shapes[j]
# 判断是否为组合形状
if isinstance(shape, GroupShape):
groupShape = shape
# 取消组合该组合形状
slide.Ungroup(groupShape)
# 保存文档
ppt.SaveToFile("取消组合.pptx", FileFormat.Pptx2013)
# 释放对象
ppt.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。