写点什么

如何通过 C#/VB.NET 在 Excel 中对形状进行分组或取消分组

作者:在下毛毛雨
  • 2023-01-30
    四川
  • 本文字数:3458 字

    阅读完需:约 11 分钟

如何通过C#/VB.NET在 Excel 中对形状进行分组或取消分组

我们在 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.XlsImports Spire.Xls.CoreImports Spire.Xls.Core.MergeSpreadsheet.CollectionsImports 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 ClassEnd 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.XlsImports 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 ClassEnd Namespace
复制代码

效果图

—本文完—

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2022-06-02 加入

还未添加个人简介

评论

发布
暂无评论
如何通过C#/VB.NET在 Excel 中对形状进行分组或取消分组_C#_在下毛毛雨_InfoQ写作社区