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形状的组合与取消内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于使用BeginInvoke,EndInvoke异步调用委托的实现代码

    基于使用BeginInvoke,EndInvoke异步调用委托的实现代码

    本篇文章是对使用BeginInvoke,EndInvoke异步调用委托的实现代码进行了分析介绍,需要的朋友参考下
    2013-05-05
  • C#操作INI配置文件示例详解

    C#操作INI配置文件示例详解

    这篇文章主要为大家详细介绍了C#操作INI配置文件示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 详解c#中Array,ArrayList与List<T>的区别、共性与相互转换

    详解c#中Array,ArrayList与List<T>的区别、共性与相互转换

    本文详细讲解了c#中Array,ArrayList与List<T>的区别、共性与相互转换,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C#切换鼠标左右键习惯无需控制面板中修改

    C#切换鼠标左右键习惯无需控制面板中修改

    本人一直喜欢左手使用鼠标,偶尔同事会临时操作一下,因为他的习惯是右手,还得在控制面板里进行更改,太麻烦了所以就编写一个控制台程序,双击一下即可切换左右键,热爱懒人的你可不要错过了哈
    2013-02-02
  • C#基于QRCode实现动态生成自定义二维码图片功能示例

    C#基于QRCode实现动态生成自定义二维码图片功能示例

    这篇文章主要介绍了C#基于QRCode实现动态生成自定义二维码图片功能,结合实例形式分析了C#使用QRCode动态生成二维码图片相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • C#使用itextsharp生成PDF文件的实现代码

    C#使用itextsharp生成PDF文件的实现代码

    以下是对在C#中使用itextsharp生成PDF文件的实现代码进行了详细分析介绍,需要的朋友可以过来参考下
    2013-07-07
  • C#对文件/文件夹操作代码汇总

    C#对文件/文件夹操作代码汇总

    有关文件的操作的内容非常多,不过几乎都是从下面的这些基础方法中演化出来的。比如对内容的修改,不外乎就是加上点字符串操作或者流操作。还有其它一些特别的内容,等在开发项目中具体遇到后再添加。
    2015-04-04
  • C#时间戳基本使用方法详解

    C#时间戳基本使用方法详解

    这篇文章主要给大家介绍了关于C#时间戳基本使用方法的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友可以参考下
    2022-10-10
  • C#客户端程序Visual Studio远程调试的方法详解

    C#客户端程序Visual Studio远程调试的方法详解

    这篇文章主要给大家介绍了关于C#客户端程序Visual Studio远程调试的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • C# 实现抓包的实例代码

    C# 实现抓包的实例代码

    这篇文章主要介绍了C# 实现抓包的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08

最新评论