可用于:用户界面的ASP。NET MVC | 用户界面的ASP。净AJAX | Blazor用户界面 | WPF的用户界面 | WinForms的UI | Silverlight的用户界面 | Xamarin的UI | WinUI的用户界面 | 用户界面的ASP。网络核心 | .NET MAUI的用户界面

Telerik文档处理?下载30天免费试用

合并和取消合并单元格

您可以将两个或多个相邻的单元格合并为跨越多行和多列的单个单元格。左上角单元格的内容显示在新创建的合并单元格中。合并区域中其余单元格的内容将被清除。一旦合并,一个细胞可以很容易地分解成它的复合细胞。

合并单元

要合并单元格,必须创建CellSelection对象,该对象确定要合并的单元格区域。的CellSelection类提供了两个执行不同类型合并的方法:合并()而且MergeAcross ().前一种方法连接所有单元格以创建一个大单元格,而后一种方法则组合出现在同一行中的所有单元格,从而为选定区域中的每一行创建合并的单元格。

让我们仔细看看合并的两种方法如何改变下面的工作表。

示例1构造一个工作表,该工作表将在接下来的几个示例中用作起点。

例1:构造工作表

Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞[0, 0].SetValue("A1"); worksheet.Cells[1, 0].SetValue("A2"); worksheet.Cells[0, 1].SetValue("B1"); worksheet.Cells[1, 1].SetValue("B2");

图1中的代码片段的结果示例1

图1:工作表

快速扩展处理特性合并未合并单元格

示例2说明如何在单元格区域上执行合并操作A1: B2

例2:执行合并操作

Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();CellIndex A1Cell = new CellIndex(0,0);CellIndex B2Cell = new CellIndex(1,1);工作表。细胞[A1Cell, B2Cell].Merge();

合并的结果是,四个单元格显示为一个。新创建的单元格的内容等于合并区域的左上单元格,即。A1.此时,合并区域中其余单元格的值将被清除,现在是单元格A2 B1 B2没有价值观。

图2演示了的结果示例2中创建的工作表上执行示例1

图2:合并操作结果

Rad扩展处理特性合并未合并单元格

我们来看看MergeAcross ()方法将更改原始工作表中的相同区域。

示例3说明如何在单元格区域上执行合并操作A1: B2

例3:执行merge across

Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();CellIndex A1Cell = new CellIndex(0,0);CellIndex B2Cell = new CellIndex(1,1);工作表。细胞[A1Cell, B2Cell].MergeAcross();

注意不像合并(),MergeAcross ()方法为每一行创建一个新单元格。每个新创建的单元格都包含在同一行和合并区域中最左边的单元格的值。其余合并单元格的值将被清除,因此将清除单元格B1而且B2值为空。

图3演示了的结果示例3中创建的工作表上执行示例1

图3:跨操作结果合并

快速扩展处理特性合并未合并单元格

如果您现在尝试合并与另一个合并单元格范围相交的单元格范围,则将从两个范围的左上单元格和右下单元格中生成第三个合并单元格范围。

示例4跨区域合并A1: B2然后对该区域中的单元格执行另一次合并B2: C3

例4:与合并的单元格范围相交

Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();CellIndex B2Cell = new CellIndex(1,1);CellIndex C3Cell = new CellIndex(2,2);工作表。细胞[B2Cell, C3Cell].Merge();

结果是一个合并的单元格,范围为A1C3

图4演示了的结果示例4中创建的工作表上执行示例1

图4:合并单元格范围和合并单元格范围结果

Rad扩展处理特性合并未合并单元

获取合并的单元格范围

在某些情况下,您可能想知道特定单元格是否是合并区域的一部分。在其他情况下,您可能需要检索所有合并的范围。本节概述获取合并区域的可能方法。

如何检查单元格是否合并?

Cells类公开了一个GetIsMerged ()方法,该方法允许您确定单元格是否属于合并的单元格。该方法接受一个类型的参数CellIndex它指定要检查的单元格,并返回一个布尔值,指示该单元格是否包含在合并的单元格中。

示例5检查单元格A1是否在合并区域中。

例5:检查cell是否在合并的cell范围内

CellIndex A1CellIndex =新的CellIndex(0,0);bool isA1merged = worksheet. cells . getimerge (A1CellIndex);

如何获得包含合并的单元格范围,如果单元格合并?

方法检查单元格是否属于合并范围的另一种方法是使用TryGetContainingMergedRange ()方法细胞类。与GetIsMerged()类似,此方法返回一个布尔值,该值指示单元格是否实际包含在合并的单元格中。它需要CellIndex参数,它指向要检查的单元格。该方法还有一个CellRange类型的附加输出参数,用于保存合并的单元格范围(如果该单元格属于CellRange的话)。

例子6显示如何使用TryGetContainingMergedRange()方法。

示例6:尝试获得合并的单元格范围

CellIndex A1CellIndex =新的CellIndex(0,0);CellRange mergedCellRange;bool canGetContainingMergedCellRange = worksheet.Cells。TryGetContainingMergedRange(A1CellIndex, out mergedCellRange);

如何得到所有合并单元格范围包含在一个给定的单元格范围?

使用GetContainingMergedRanges ()方法细胞类检索指定范围内的所有合并单元格。该方法接受一个类型的参数CellRange它确定搜索的范围,并返回一个包含所有合并单元格范围的枚举值。

例7显示如何使用GetContainingMergedRanges()方法。

例7:获取一个范围内所有包含合并的范围

CellIndex A1CellIndex =新的CellIndex(0,0);CellIndex N33CellIndex = new CellIndex(32,13);CellRange A1N33CellRange = new CellRange(A1CellIndex, N33CellIndex);IEnumerable containingmergedranges = worksheet.Cells.GetContainingMergedRanges(A1N33CellRange);

如何得到所有合并范围?

GetMergedCellRanges ()方法细胞类返回包含工作表中所有合并单元格范围的枚举。

示例8演示如何在工作表中获取所有合并范围。

例8:获取所有合并的范围

Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();IEnumerable mergedCellRanges = worksheet.Cells.GetMergedCellRanges();

Unmerge细胞

一旦合并了一个单元格,API就提供了一种简单的方法来将其拆分回其组成单元格。这是通过Unmerge ()方法CellSelection类。当调用此方法时,它将取消与所选单元格范围相交的所有合并单元格范围。例如,考虑中的工作表图5这是区域A1: B2而且D4: E5合并。

图5:示例工作表Rad扩展处理特性合并未合并单元格

例9调用Unmerge ()区域的方法B2: D4的工作表图5,与两个合并范围相交。

例9:取消合并单元格

CellIndex B2CellIndex =新的CellIndex(1,1);CellIndex D4CellIndex =新的CellIndex(3,3);B2D4CellSelection = new CellRange(B2CellIndex, D4CellIndex);worksheet.Cells [B2D4CellSelection] .Unmerge ();

图6显示结果是两个范围未合并。

图6:取消合并操作的结果

Rad扩展处理特性合并未合并单元格

在本文中
Baidu
map