C#代码实现在PowerPoint中组合或取消组合形状

 更新时间:2026年05月22日 11:45:56   作者:2501_93070778  
在 PowerPoint 中,对形状进行组合和取消组合是两个非常实用的功能,本文将介绍如何在 C# 和 VB.NET 中实现 PowerPoint 形状的组合与取消组合操作,希望对大家有所帮助

在 PowerPoint 中,对形状进行组合和取消组合是两个非常实用的功能。通过组合,您可以将多个形状整合为一个整体,从而像操作单个对象一样同时移动、设置格式、调整大小或旋转这些形状。而取消组合则可以解除这些形状之间的关联,使您能够再次单独编辑每个形状。本文将介绍如何在 C# 和 VB.NET 中实现 PowerPoint 形状的组合与取消组合操作。

安装所需组件

开始之前,需要在 .NET 项目中添加相关 DLL 文件引用。您可以通过下载安装包获取这些 DLL 文件,也可以直接通过 NuGet 进行安装。

PM> Install-Package Spire.Presentation

在 C# 和 VB.NET 中组合 PowerPoint 形状

在 PowerPoint 中,可以将多个形状组合为一个整体,以便统一进行移动、缩放、旋转或格式设置。实现这一操作时,可通过幻灯片对象提供的方法对指定形状进行组合。具体步骤如下:

  1. 初始化 Presentation 类的实例。
  2. 通过 Presentation.Slides[0] 获取第一张幻灯片。
  3. 使用 ISlide.Shapes.AppendShape() 方法向幻灯片中添加两个形状。
  4. 初始化 ArrayList 类的实例。
  5. 将两个形状添加到 ArrayList 集合中。
  6. 使用 ISlide.GroupShapes(ArrayList shapeList) 方法对集合中的形状进行组合。
  7. 使用 Presentation.SaveToFile() 方法保存结果文档。

完整示例代码如下:

using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Collections;
using System.Drawing;

namespace GroupShapes
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //初始化 Presentation 类实例
            Presentation ppt = new Presentation();

            //获取第一张幻灯片
            ISlide slide = ppt.Slides[0];

            //向幻灯片中添加两个形状
            IShape rectangle = slide.Shapes.AppendShape(
                ShapeType.Rectangle,
                new RectangleF(20, 100, 200, 40));

            rectangle.Fill.FillType = FillFormatType.Solid;
            rectangle.Fill.SolidColor.KnownColor = KnownColors.Gold;
            rectangle.Line.Width = 0.1f;

            IShape ribbon = slide.Shapes.AppendShape(
                ShapeType.Ribbon2,
                new RectangleF(60, 75, 120, 80));

            ribbon.Fill.FillType = FillFormatType.Solid;
            ribbon.Fill.SolidColor.KnownColor = KnownColors.Purple;
            ribbon.Line.Width = 0.1f;

            //初始化 ArrayList 集合
            ArrayList list = new ArrayList();

            //将两个形状添加到集合中
            list.Add(rectangle);
            list.Add(ribbon);

            //组合形状
            slide.GroupShapes(list);

            //保存结果文档
            ppt.SaveToFile("GroupShapes.pptx", FileFormat.Pptx2010);

            //释放资源
            ppt.Dispose();
        }
    }
}

在 C# 和 VB.NET 中取消组合 PowerPoint 形状

若要取消 PowerPoint 文档中已组合的形状,需要遍历文档中的所有幻灯片以及每张幻灯片中的所有形状,找到组合形状后,再使用相应的方法将其取消组合。具体步骤如下:

  1. 初始化 Presentation 类实例。
  2. 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文档。
  3. 遍历文档中的所有幻灯片。
  4. 遍历每张幻灯片中的所有形状。
  5. 判断当前形状是否为 GroupShape 类型;如果是,则使用 ISlide.Ungroup(GroupShape) 方法取消组合。
  6. 使用 Presentation.SaveToFile() 方法保存结果文档。

完整示例代码如下:

using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Collections;
using System.Drawing;

namespace UngroupShapes
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //初始化 Presentation 类实例
            Presentation ppt = new Presentation();

            //加载 PowerPoint 文档
            ppt.LoadFromFile("GroupShapes.pptx");

            //遍历文档中的所有幻灯片
            for (int i = 0; i < ppt.Slides.Count; i++)
            {
                ISlide slide = ppt.Slides[i];

                //遍历每张幻灯片中的所有形状
                for (int j = 0; j < slide.Shapes.Count; j++)
                {
                    IShape shape = slide.Shapes[j];

                    //检测当前形状是否为组合形状
                    if (shape is GroupShape)
                    {
                        GroupShape groupShape = shape as GroupShape;

                        //取消组合形状
                        slide.Ungroup(groupShape);
                    }
                }
            }

            //保存结果文档
            ppt.SaveToFile("UngroupShapes.pptx", FileFormat.Pptx2013);

            //释放资源
            ppt.Dispose();
        }
    }
}

总结

本文介绍了如何在 PowerPoint 中对形状进行组合与取消组合操作。通过组合多个形状,可以像操作单个对象一样统一移动、缩放、旋转和设置格式,从而提升幻灯片编辑效率;而取消组合则能够重新拆分这些形状,便于进一步单独编辑。

文章分别演示了在 C# 和 VB.NET 中实现这两项功能的方法,包括如何创建形状、将多个形状加入集合后进行组合,以及如何遍历幻灯片中的组合对象并将其取消组合。通过这些操作,开发者可以更加灵活地管理 PowerPoint 中的图形元素,提高演示文稿的自动化处理能力。

到此这篇关于C#代码实现在PowerPoint中组合或取消组合形状的文章就介绍到这了,更多相关C# PowerPoint形状的组合与取消内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中static关键字的具体使用

    C#中static关键字的具体使用

    本篇文章详细介绍了C#中static关键字的含义、用途、与其他关键字的关系以及它在不同作用域中的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • C#删除Excel中的图片实例代码

    C#删除Excel中的图片实例代码

    在本篇文章里小编给大家分享了关于C#删除Excel中的图片的实例代码内容,有兴趣的朋友们参考学习下。
    2019-07-07
  • 一文解析C#中的StringSplitOptions枚举

    一文解析C#中的StringSplitOptions枚举

    StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后产生的“空字符串”或“空白字符串”,让开发者能精确控制分割结果的格式,本文给大家介绍C#中的StringSplitOptions枚举,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • C#实现PowerPoint转HTML格式的全攻略

    C#实现PowerPoint转HTML格式的全攻略

    在数字化协作日益普及的今天,将 PowerPoint (PPT/PPTX) 演示文稿转换为 HTML 格式的需求愈发强烈,下面我们就来看看如何通过C#实现这一需求吧
    2026-02-02
  • C#定义并实现单链表实例解析

    C#定义并实现单链表实例解析

    这篇文章主要介绍了C#定义并实现单链表实例解析,有助于读者加深对C#实现数据结构的理解,需要的朋友可以参考下
    2014-07-07
  • c# 根据NPOI 读取一个excel 文件的多个Sheet

    c# 根据NPOI 读取一个excel 文件的多个Sheet

    这篇文章主要介绍了c# 根据NPOI 读取一个excel 文件的多个Sheet,帮助大家更好的利用c#处理excel表格,感兴趣的朋友可以了解下
    2020-12-12
  • C# XML基础入门小结(XML文件内容增删改查清)

    C# XML基础入门小结(XML文件内容增删改查清)

    本文主要介绍了C# XML基础入门小结(XML文件内容增删改查清),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C#实现注册码的方法

    C#实现注册码的方法

    这篇文章主要介绍了C#实现注册码的方法,可实现C#生成软件注册码的相关功能,涉及C#硬件操作及随机数操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-08-08
  • C#中字符串插值($) 和 逐字字符串(@)的使用

    C#中字符串插值($) 和 逐字字符串(@)的使用

    这篇文章主要介绍了C#中字符串插值($) 和 逐字字符串(@)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • C# 调用外部exe的三种方式

    C# 调用外部exe的三种方式

    调用外部exe是常用的功能,本文主要介绍了C# 调用外部exe的三种方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04

最新评论