有时,您可能需要在 Excel 中对多个形状执行特定操作,例如添加样式、调整大小或移动它们。对形状进行分组可以帮助您更轻松、更高效地完成此任务。对形状进行分组后,它们将被视为单个实体并且可以同时进行操作。在本文中,您将学习如何使用 Spire.XLS for .NET 在 C# 和 VB.NET 中以编程方式对 Excel 中的形状进行分组或取消分组。
安装 Spire.XLS for .NET
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS对 Excel 中的形状进行分组
要对 Excel 工作表中的某些形状进行分组,您需要使用 Worksheet.GroupShapeCollection 属性返回一个 GroupShapeCollection 对象,然后调用 GroupShapeCollection.Group() 方法。详细步骤如下:
- 初始化 Workbook 类的实例。
- 通过 Workbook.Worksheets[int] 属性按索引获取第一个工作表。
- 使用 Worksheet.PrstGeomShapes.AddPrstGeomShape(int, int, int, int, PrstGeomShapeType) 方法向工作表中的特定行和列添加多个形状。
- 通过 Worksheet.GroupShapeCollection 属性获取工作表的组形状集合。
- 使用 GroupShapeCollection.Group(IShape[]) 方法对形状进行分组。
- 使用 Workbook.SaveToFile(string) 方法保存结果文档。
- C#
- VB.NET
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.MergeSpreadsheet.Collections;
using System.Drawing;
namespace GroupShapes
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化Workbook类的实例
            Workbook workbook = new Workbook();
            //获取第一个工作表
            Worksheet worksheet = workbook.Worksheets[0];
            //添加多个形状
            IPrstGeomShape shape1 = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 3, 65, 50, PrstGeomShapeType.RoundRect);
            shape1.Fill.FillType = ShapeFillType.SolidColor;
            shape1.Fill.ForeColor = Color.Yellow;
            shape1.Line.Weight = 0.1;
            IPrstGeomShape shape2 = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 3, 65, 50, PrstGeomShapeType.Ribbon);
            shape2.Fill.FillType = ShapeFillType.SolidColor;
            shape2.Fill.ForeColor = Color.Purple;
            shape2.Line.Weight = 0.1;
            IPrstGeomShape shape3 = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 5, 65, 50, PrstGeomShapeType.Cloud);
            shape3.Fill.FillType = ShapeFillType.SolidColor;
            shape3.Fill.ForeColor = Color.LightGreen;
            shape3.Line.Weight = 0.1;
            IPrstGeomShape shape4 = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 5, 65, 50, PrstGeomShapeType.Ellipse);
            shape4.Fill.FillType = ShapeFillType.SolidColor;
            shape4.Fill.ForeColor = Color.LightSkyBlue;
            shape4.Line.Weight = 0.1;
            //对形状进行分组
            GroupShapeCollection groupShapeCollection = worksheet.GroupShapeCollection;
            groupShapeCollection.Group(new IShape[] { shape1, shape2, shape3, shape4 });
            //保存结果文档
            workbook.SaveToFile("GroupShapes.xlsx", ExcelVersion.Version2013);
        }
    }
}Imports Spire.Xls
Imports Spire.Xls.Core
Imports Spire.Xls.Core.MergeSpreadsheet.Collections
Imports System.Drawing
Namespace GroupShapes
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '初始化Workbook类的实例 Dim workbook As Workbook = New Workbook() '获取第一个工作表
            Dim worksheet As Worksheet = workbook.Worksheets(0)
            '添加多个形状 Dim shape1 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(3,3,65,50,PrstGeomShapeType.RoundRect) shape1.Fill.FillType = ShapeFillType.SolidColor shape1.Fill.ForeColor = Color.Yellow shape1.Line.Weight = 0.1 Dim shape2 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(7,3,65,50,PrstGeomShapeType.Ribbon) shape2.Fill.FillType = ShapeFillType.SolidColor shape2.Fill.ForeColor = Color.Purple shape2.Line.Weight = 0.1 Dim shape3 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(3,5,65,50,PrstGeomShapeType.Cloud) shape3.Fill.FillType = ShapeFillType.SolidColor shape3.Fill.ForeColor = Color.LightGreen shape3.Line.Weight = 0.1 Dim shape4 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(7,5,65,50,PrstGeomShapeType.Ellipse) shape4.Fill.FillType = ShapeFillType.SolidColor shape4.Fill.ForeColor = Color.LightSkyBlue shape4.Line.Weight = 0.1 '对形状进行分组
            Dim groupShapeCollection As GroupShapeCollection = worksheet.GroupShapeCollection
            groupShapeCollection.Group(New IShape() {shape1, shape2, shape3, shape4})
            '保存结果文档 workbook.SaveToFile("GroupShapes.xlsx",ExcelVersion.Version2013) End Sub End Class End Namespace
对 Excel 中的形状取消分组
如果要取消 Excel 工作表中已分组的形状,您可以使用 GroupShapeCollection. UnGroupAll()方法。取消形状分组后,则可以单独操作它们。详细步骤如下:
- 初始化 Workbook类的实例。
- 使用 Workbook.LoadFromFile()方法加载 Excel 文件。
- 通过 Workbook.Worksheets[int]属性通过其索引获取特定工作表。
- 通过 Worksheet.GroupShapeCollection属性获取工作表的组形状集合。
- 使用 GroupShapeCollection.UnGroupAll()方法取消所有分组的形状。
- 使用 Workbook.SaveToFile()方法保存结果文档。
- C#
- VB.NET
using Spire.Xls;using Spire.Xls.Core.MergeSpreadsheet.Collections;namespace UngroupShapes{class Program{static void Main(string[] args){//初始化Workbook类的实例 Workbook workbook = new Workbook();workbook.LoadFromFile("GroupShapes.xlsx");//获取特定工作表 Worksheet worksheet = workbook.Worksheets[0];//取消分组工作表中的分组形状 GroupShapeCollection groupShapeCollection = worksheet.GroupShapeCollection;groupShapeCollection.UnGroupAll();//保存结果文档 workbook.SaveToFile("UnGroupShapes.xlsx",ExcelVersion.Version2013);}}}Imports Spire.Xls Imports Spire.Xls.Core.MergeSpreadsheet.Collections Namespace UngroupShapes Friend Class Program Private Shared Sub Main(ByVal args As String()) '初始化Workbook类的实例
            Dim workbook As Workbook = New Workbook()
            workbook.LoadFromFile("GroupShapes.xlsx")
            '获取特定工作表 Dim worksheet As Worksheet = workbook.Worksheets(0) '取消分组工作表中的分组形状
            Dim groupShapeCollection As GroupShapeCollection = worksheet.GroupShapeCollection
            groupShapeCollection.UnGroupAll()
            '保存结果文档 workbook.SaveToFile("UnGroupShapes.xlsx",ExcelVersion.Version2013) End Sub End Class End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



