有时,您可能需要在 excel 中对多个形状执行特定操作,例如添加样式、调整大小或移动它们。对形状进行分组可以帮助您更轻松、更高效地完成此任务。对形状进行分组后,它们将被视为单个实体并且可以同时进行操作。在本文中,您将学习如何使用 spire.xls for .net 在 c# 和 vb.net 中以编程方式对 excel 中的形状进行分组或取消分组。
安装 spire.xls for .net
首先,您需要添加 spire.xls for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll 文件可以从此链接下载或通过 安装。
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 天的临时许可证。