我们在 Excel 中处理形状和对象时,最方便的功能之一就是分组。将这些类型的元素组合在一起,这使得我们可以更容易地对其进行移动、调整大小和格式化等操作。本文将为您介绍如何以编程方式对 Excel 中的形状进行分组或取消分组。
对 Excel 中的形状进行分组
对 Excel 中的形状取消分组
程序环境:
本次测试时,在程序中引入 Spire.XLS.dll 文件。
方法 1:
将 Free Spire.XLS for .NET 下载到本地,解压,找到 BIN 文件夹下的 Spire.XLS.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。
方法 2::
通过NuGet安装。可通过以下 2 种方法安装:
1.可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.XLS”,点击“安装”。等待程序安装完成。
2.将以下内容复制到 PM 控制台安装。
Install-Package FreeSpire.XLS -Version 12.7
对 Excel 中的形状进行分组
对 Excel 工作表中的某些形状进行分组的详细步骤如下:
初始化 Workbook 类的实例。
通过 Workbook.Worksheets[int]属性按索引获取第一个工作表。
使用 Worksheet.PrstGeomShapes.AddPrstGeomShape(int,int, int, int, PrstGeomShapeType) 方法向工作表中的特定行和列添加多个形状。
通过 Worksheet.GroupShapeCollection 属性获取工作表的组形状集合。
使用 GroupShapeCollection.Group(IShape[]) 方法对形状进行分组。
使用 Workbook.SaveToFile(string)方法保存结果文档。
完整代码
C#
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);
}
}
}
复制代码
VB.NET
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 工作表中已分组的形状取消形状分组后,则可以单独操作它们。详细步骤如下:
初始化 Workbook 类的实例。
使用 Workbook.LoadFromFile()方法加载 Excel 文件。
通过 Workbook.Worksheets[int]属性通过其索引获取特定工作表。
通过 Worksheet.GroupShapeCollection 属性获取工作表的组形状集合。
使用 GroupShapeCollection.UnGroupAll()方法取消所有分组的形状。
使用 Workbook.SaveToFile()方法保存结果文档。
完整代码
C#
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);
}
}
}
复制代码
VB.NET
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
复制代码
效果图
—本文完—
评论