首页 > 编程开发 > C类语言    日期:2026-06-11 / 浏览

在处理大型 Excel 文件时,经常需要合并行、列或特定单元格区域,以使数据更加整洁、易于阅读。通过 C# 或 VB.NET,只需少量代码即可实现 Excel 单元格合并,并可将内容设置为水平和垂直居中,从而获得更加美观、专业的排版效果。无论是合并整行、整列,还是格式化指定区域,本文示例都将帮助您自动完成这些操作,提高工作效率。

环境准备

如果您经常在 .NET 项目中处理 Excel 文件,例如合并单元格、设置格式或生成报表,那么使用合适的 Excel 处理库可以显著提升开发效率。Spire.XLS 提供了丰富的 Excel 操作功能,支持在 C# 和 VB.NET 中创建、读取和编辑 Excel 文件,无需依赖 Microsoft Office。您可以通过 NuGet 快速将其集成到项目中:

PM> Install-Package Spire.XLS

使用 C# 合并 Excel 中的行或列

在 Excel 中,合并行或列是整理数据和创建专业表格的常用方法。例如,可以将第一行跨多个列进行合并,以创建清晰且居中的表格标题。通过 C# 代码,您可以轻松实现这一过程的自动化,从而节省时间,并确保大型 Excel 文件中的格式保持一致。

下面的代码示例演示了如何使用 C# 合并 Excel 的第一行并将其内容居中显示:

using Spire.Xls;

namespace MergeCells
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例并加载 Excel 文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("\\Population.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 合并第一行
            sheet.Rows[0].Merge();

            // 合并第一列
            //sheet.Columns[0].Merge();

            // 设置水平和垂直居中对齐
            sheet.Rows[0].Style.HorizontalAlignment = HorizontalAlignType.Center;
            sheet.Rows[0].Style.VerticalAlignment = VerticalAlignType.Center;

            // 保存 Excel 文件
            workbook.SaveToFile("\\Mergerowsandcenter.xls");
        }
    }
}

代码步骤说明:

  1. 创建 Workbook 对象并读取 Excel 文件。
  2. 获取指定工作表。
  3. 使用 Worksheet.Rows[].Merge() 方法合并指定行。
  4. 通过设置 Style.HorizontalAlignmentStyle.VerticalAlignment 属性,使内容水平和垂直居中对齐。
  5. 保存修改后的 Excel 文件。

上述用于合并 Excel 行的 C# 代码同样适用于合并列,相关代码已在示例中以注释形式标出。

在通过合并单元格创建整洁的表格标题后,有时您可能需要撤销该操作。此时可以使用 C# 或 VB.NET 轻松取消 Excel 单元格合并,恢复原有的单元格布局,同时不会影响其中的数据。

合并 Excel 中的指定单元格区域

使用 C# 合并 Excel 中的指定单元格区域,可用于突出显示某部分数据,例如汇总行或一组相关列。这一过程与合并整行或整列非常相似,同样可以使用 Merge() 方法,只不过需要通过 Worksheet.Range[] 获取 CellRange 对象后再调用 Merge() 方法。

通过指定需要合并的具体区域,您可以创建更加清晰、有序的表格布局,提升数据的可读性。同时,该操作还可以自动应用于多个工作表或文件,无需手动逐个调整单元格。

下面的代码示例演示了如何使用 C# 合并 Excel 工作表中的 “B6:E6” 单元格区域:

using Spire.Xls;

namespace MergeCells
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例并加载 Excel 文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("\\Population.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 合并 Excel 中指定的单元格区域
            sheet.Range["B6:E6"].Merge();

            // 保存 Excel 文件
            workbook.SaveToFile("\\Mergecellrange.xls");
        }
    }
}

知识扩展

在 C# 中,使用 EPPlus 库可以非常方便地操作 Excel 文件,包括合并单元格和设置居中样式。EPPlus 5+ 版本对于商业使用需要授权,但个人或学习用途可免费使用。

以下是一个完整的示例,演示如何:

  • 创建一个 Excel 工作簿和工作表
  • 填充一些数据
  • 合并指定的单元格区域
  • 设置合并后的单元格内容水平居中、垂直居中
  • 保存文件

安装 EPPlus

通过 NuGet 包管理器安装:

Install-Package EPPlus

或在 .csproj 中添加:

<PackageReference Include="EPPlus" Version="7.1.0" />

注意:EPPlus 5 及以上版本需要设置许可证上下文(非商业使用可设置 LicenseContext.NonCommercial)。

完整代码示例

using OfficeOpenXml;
using OfficeOpenXml.Style;
using System.Drawing;
using System.IO;

namespace ExcelMergeAndCenter
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置EPPlus许可上下文(非商业使用)
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            // 创建Excel包
            using (var package = new ExcelPackage())
            {
                // 添加工作表
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");

                // 1. 填入一些示例数据
                worksheet.Cells["A1"].Value = "合并单元格示例";
                worksheet.Cells["A3"].Value = "普通数据1";
                worksheet.Cells["B3"].Value = "普通数据2";

                // 2. 合并单元格范围(例如合并 A1 到 C2)
                var mergeRange = worksheet.Cells["A1:C2"];
                mergeRange.Merge = true;

                // 3. 设置合并后的单元格内容居中(水平和垂直)
                //    方式:通过合并后单元格的Style属性
                mergeRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                mergeRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
                
                // 可选:设置字体加粗、字号等
                mergeRange.Style.Font.Bold = true;
                mergeRange.Style.Font.Size = 14;
                mergeRange.Style.Font.Color.SetColor(Color.Blue);

                // 4. 设置自动调整列宽(可选)
                worksheet.Cells.AutoFitColumns(0);

                // 5. 保存文件
                var fileInfo = new FileInfo(@"C:\temp\MergedCentered.xlsx");
                package.SaveAs(fileInfo);
                System.Console.WriteLine($"文件已保存至:{fileInfo.FullName}");
            }
        }
    }
}

关键点说明

1. 合并单元格

worksheet.Cells["A1:C2"].Merge = true;
  • Cells 可以指定单个单元格或矩形区域(如 "A1:C2")。
  • 设置 Merge = true 即可合并该区域。

2. 设置居中样式

mergeRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
mergeRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
  • 水平对齐:ExcelHorizontalAlignment.Center
  • 垂直对齐:ExcelVerticalAlignment.Center

3. 其他常用样式

  • 字体加粗mergeRange.Style.Font.Bold = true
  • 背景色mergeRange.Style.Fill.PatternType = ExcelFillStyle.Solid; mergeRange.Style.Fill.BackgroundColor.SetColor(Color.LightGray)
  • 边框mergeRange.Style.Border.Top.Style = ExcelBorderStyle.Thin

注意事项

  • 合并后只能保留左上角单元格的值,其他区域的值会被清除。
  • 如果要合并的行或列中包含数据,请确保数据放在目标区域的第一个单元格。
  • EPPlus 7.x 需要 .NET 6 或更高版本,若使用 .NET Framework 4.6.2 建议安装 EPPlus 5.8.x。
  • 如果仅需简单操作且不想引入第三方库,可使用 Microsoft.Office.Interop.Excel,但该方式需要安装

总结

通过本文介绍的方法,您可以使用 C# 轻松实现 Excel 单元格合并操作,无论是合并整行、整列,还是指定的单元格区域,都能够通过代码高效完成。借助 Excel 处理库,您可以将这些操作自动化执行,从而减少手动编辑工作,创建更加整洁、专业的电子表格。

如果您经常需要批量处理 Excel 文件、生成报表或统一表格格式,不妨尝试使用相关工具来提升开发效率和工作质量。

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章