合并单元格是指将两个或多个相邻的单元格合并为一个大单元格。这样做主要是为了排版、制表的需要,使表格的标题或特定内容能够跨多个列或行显示,提升表格的可读性和美观度。但是当发现合并单元格后影响到了数据的排序、筛选等操作,或者表格布局发生变化,不再需要合并的单元格时,就需要取消合并。本文将演示如何使用 ++Spire.XLS for .NET++ ++++ 通过 C# 合并或取消合并 Excel 中的单元格。
安装 Spire.XLS for .NET
E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化信创. 首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
C# 合并 Excel 指定行或列中的单元格
要合并 Excel 中指定行或列的单元格,可以直接调用 Workheet.Rows[].Merge() 或 Workheet.Columns[].Merge() 方法。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workheet.Columns[].Merge() 或 Workheet.Rows[].Merge() 方法合并特定列或指定行中的单元格。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
namespace MergeRowsColumns
{
class Program
{
static void Main(string[] args)
{
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("费用.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 合并第一行
sheet.Rows[0].Merge();
// 合并第一列
//sheet.Columns[0].Merge();
// 保存结果文件
workbook.SaveToFile("合并行或列.xlsx", ExcelVersion.Version2016);
}
}
}

C# 合并 Excel 中的指定单元格区域
Spire.XLS for .NET 提供的 Workbook.Range[].Merge() 方法可以实现合并指定的单元格范围。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workbook.Range[].Merge() 方法合并特定单元格区域。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
namespace MergeCells
{
class Program
{
static void Main(string[] args)
{
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("费用.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//合并指定单元格区域
sheet.Range["H3:H5"].Merge();
// 保存结果文件
workbook.SaveToFile("合并单元格区域.xlsx", ExcelVersion.Version2016);
}
}
}

C# 取消合并 Excel 指定行或列中的单元格
对于已合并的 Excel 行或列,Spire.XLS for .NET 还提供了 Workheet.Rows[].UnMerge() 或 Worksheet.Columns[].UnMerge() 方法取消合并特定列或行的单元格。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Worksheet.Columns[].UnMerge() 或 Workheet.Rows[].UnMerge() 方法取消合并特定列或行中的已合并单元格。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
namespace UnMergeRowsColumns
{
class Program
{
static void Main(string[] args)
{
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("合并行或列.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 取消合并第一行
sheet.Rows[0].UnMerge();
// 取消合并第一列
//sheet.Columns[0].UnMerge()
// 保存结果文件
workbook.SaveToFile("取消合并行或列.xlsx", ExcelVersion.Version2016);
}
}
}

C# 取消合并 Excel 中的指定单元格区域
此外,用户还能使用 Workbook.Range[].UnMerge() 方法取消合并指定的单元格范围。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workbook.Range[].UnMerge() 方法取消合并特定单元格区域。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
namespace UnMergeCells
{
class Program
{
static void Main(string[] args)
{
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("合并单元格区域.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 取消合并指定单元格区域
sheet.Range["H3:H5"].UnMerge();
// 保存结果文件
workbook.SaveToFile("取消合并单元格区域.xlsx", ExcelVersion.Version2016);
}
}
}