Cómo unir y separar celdas

por Chaknith Bin

La fusión de celdas se refiere al proceso de combinar dos o más celdas adyacentes en una única celda más grande. Por otro lado, la separación de células es el proceso opuesto, en el que una célula fusionada se divide de nuevo en sus células individuales originales. Esta función permite flexibilidad, una alineación coherente y un mejor análisis de los datos.

IronXL permite combinar y separar celdas de una hoja de cálculo mediante programación.

Biblioteca NuGet C# para Excel

Instalar con NuGet

Install-Package IronXL.Excel
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de fusión de celdas

El método Merge puede utilizarse para combinar un rango de celdas. Este proceso combina las celdas sin borrar ningún valor o dato existente, pero sólo se mostrará el valor de la primera celda de la región combinada. Sin embargo, los valores de las celdas fusionadas siguen siendo accesibles en IronXL.

Tenga en cuenta
La fusión de celdas dentro del rango del filtro puede causar conflictos en el archivo de Excel, requiriendo ejecutar la reparación de Excel para ver la Hoja de Cálculo.

El siguiente ejemplo de código muestra cómo combinar un rango de celdas especificando sus direcciones.

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-merge.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var range = workSheet["B2:B5"];

//  Fusionar celdas B7 a E7
workSheet.Merge("B7:E7");

//  Fusionar el rango seleccionado
workSheet.Merge(range.RangeAddressAsString);

workBook.SaveAs("mergedCell.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

Private range = workSheet("B2:B5")

'  Fusionar celdas B7 a E7
workSheet.Merge("B7:E7")

'  Fusionar el rango seleccionado
workSheet.Merge(range.RangeAddressAsString)

workBook.SaveAs("mergedCell.xlsx")
VB   C#

Demostración

Demostración de fusión de celdas

Ejemplo de recuperación de regiones fusionadas

La recuperación de regiones fusionadas es una función útil para identificar el valor mostrado en programas de visualización de hojas de cálculo como Microsoft Excel. Para obtener una lista de regiones fusionadas, puede utilizar el método GetMergedRegions.

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-retrieve-merged-regions.cs
using IronXL;
using System.Collections.Generic;
using System;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

//  Aplicar fusión
workSheet.Merge("B4:C4");
workSheet.Merge("A1:A4");
workSheet.Merge("A6:D9");

//  Recuperar regiones fusionadas
List<IronXL.Range> retrieveMergedRegions = workSheet.GetMergedRegions();

foreach (IronXL.Range mergedRegion in retrieveMergedRegions)
{
    Console.WriteLine(mergedRegion.RangeAddressAsString);
}
Imports IronXL
Imports System.Collections.Generic
Imports System

Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

'  Aplicar fusión
workSheet.Merge("B4:C4")
workSheet.Merge("A1:A4")
workSheet.Merge("A6:D9")

'  Recuperar regiones fusionadas
Dim retrieveMergedRegions As List(Of IronXL.Range) = workSheet.GetMergedRegions()

For Each mergedRegion As IronXL.Range In retrieveMergedRegions
	Console.WriteLine(mergedRegion.RangeAddressAsString)
Next mergedRegion
VB   C#

Ejemplo de fusión de celdas

La separación de las regiones fusionadas puede realizarse mediante dos métodos diferentes. El primer método, el más sencillo, consiste en especificar las direcciones de las celdas, como "B3:B6", que se van a combinar.

Alternativamente, también puede deshacer la fusión de celdas basándose en el índice de la región fusionada. Las regiones fusionadas se enumeran por orden cronológico. Para ello, puede recuperar primero las regiones fusionadas y pasar el índice deseado al método Unmerge.

Tenga en cuenta
La dirección de las celdas tiene que ser exactamente la de la región fusionada.

No es posible deshacer la fusión de pociones de la región fusionada.

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-unmerge.cs
using IronXL;

WorkBook workBook = WorkBook.Load("mergedCell.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

//  Desunir la región fusionada de B7 a E7
workSheet.Unmerge("B7:E7");

workBook.SaveAs("unmergedCell.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("mergedCell.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

'  Desunir la región fusionada de B7 a E7
workSheet.Unmerge("B7:E7")

workBook.SaveAs("unmergedCell.xlsx")
VB   C#

Demostración

Demostración de la fusión de células

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.