使用C#实现设置 Excel单元格格式的示例详解

 更新时间:2025年09月13日 10:19:07   作者:Eiceblue  
这篇文章主要为大家详细介绍了如何通过使用C#在同一个工作表中设置 字体、背景颜色、行高列宽、边框和单元格合并,文中的示例代码讲解详细,需要的小伙伴可以了解下

在实际报表开发中,Excel 的可读性和美观性与数据本身同样重要。合理的单元格格式设置不仅能让数据一目了然,还能让报表显得更专业。通过使用 C#,开发者可以精确控制 Excel 文件的单元格样式,无需依赖 Microsoft Office。

本文演示如何在 同一个工作表中设置 字体、背景颜色、行高列宽、边框和单元格合并,并说明每个操作的作用和适用场景,帮助你真正理解 Excel 格式化背后的逻辑。

本文使用的方法需要用到免费的 Free Spire.XLS for .NET,NuGet:Install-Package FreeSpire.XLS

1. 初始化工作簿和工作表

using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "销售报表";

操作说明:创建一个新的工作簿并获取第一个工作表。所有后续格式操作都在这个工作表中进行,保证操作集中一致。Worksheet 类是 Spire.XLS 中处理单个工作表的核心类,提供访问行、列和单元格以及进行格式设置的功能。

注意设置完格式之后,使用Workbook.SaveToFile()保存Excel工作簿到文件。

2. 设置单元格字体

CellRange title = sheet.Range["B2"];
title.Text = "年度销售报表";
title.Style.Font.FontName = "Arial";
title.Style.Font.Size = 16;
title.Style.Font.IsBold = true;
title.Style.Font.Color = Color.DarkBlue;
title.Style.HorizontalAlignment = HorizontalAlignType.Center;

使用说明

  • FontNameSize 控制字体类型和大小,让标题更加醒目。
  • IsBoldColor 用于突出标题信息,使报表层次分明。
  • HorizontalAlignment 将标题居中显示,使视觉效果更整齐。
  • 字体设置能够引导读者快速关注关键信息,是报表美观的重要部分。

3. 设置背景颜色

CellRange header = sheet.Range["B4:D4"];
header.Text = "产品类别\t数量\t金额";
header.Style.Color = Color.LightGray;
header.Style.Font.IsBold = true;
header.Style.HorizontalAlignment = HorizontalAlignType.Center;

作用说明

  • 背景颜色主要用于区分表头和数据区,使报表层次清晰。
  • 灰色背景是常用的表头样式,同时加粗字体进一步增强可读性。
  • 使用背景颜色可以让读者更容易理解数据分组和重点内容。

4. 调整行高和列宽

sheet.Rows[1].RowHeight = 30;      // 标题行高度
sheet.Rows[3].RowHeight = 25;      // 表头行高度
sheet.Columns[1].ColumnWidth = 20; // 产品类别列宽
sheet.Columns[2].ColumnWidth = 15; // 数量列宽
sheet.Columns[3].ColumnWidth = 15; // 金额列宽

使用场景

  • 行高和列宽影响数据展示完整性和表格整齐度。
  • 调整行高 (RowHeight) 和列宽 (ColumnWidth) 可以防止文字截断,同时让表格视觉上更平衡。
  • 对于长标题或数字密集的表格,这一步尤其重要。

5. 设置边框

CellRange dataRange = sheet.Range["B4:D6"];
dataRange.Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;
dataRange.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
dataRange.Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;
dataRange.Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;
dataRange.Style.Borders[BordersLineType.vertical].LineStyle = LineStyleType.Thin;
dataRange.Style.Borders[BordersLineType.horizontal].LineStyle = LineStyleType.Thin;

操作说明

  • 边框可以清晰区分数据单元格,使表格结构更明确。
  • Spire.XLS 提供多种边框类型和线条样式,可自由组合。
  • 使用细线 (Thin) 的边框在数据表格中最常见,不会破坏整体视觉效果。

6. 合并单元格

sheet.Range["B2:D2"].Merge();  // 合并标题单元格
sheet.Range["B7:D7"].Merge();  // 合并备注单元格
sheet.Range["B7"].Text = "数据来源:公司内部系统";
sheet.Range["B7"].Style.HorizontalAlignment = HorizontalAlignType.Center;
sheet.Range["B7"].Style.Font.IsItalic = true;

使用说明

  • 合并单元格 (Merge()) 常用于跨列的标题或备注,让内容在视觉上更突出。
  • 合并后通常需要设置居中对齐,否则文字会显示在左上角。
  • 适当使用合并单元格可以让报表布局更整洁专业。

7. 效果展示(示例表格)

下面是经过上述格式设置后保存的Excel文件:

综合效果展示了字体、背景色、行高列宽、边框和合并单元格的应用。

8. 关键类、方法与属性总结

操作类型关键类/属性使用说明
字体CellRange.Style.Font设置字体类型、大小、颜色、加粗、斜体等,突出标题或重点数据
背景色CellRange.Style.Color区分表头和数据区,使报表层次清晰
行高Worksheet.Rows[].RowHeight调整行高度,保证内容显示完整
列宽Worksheet.Columns[].ColumnWidth调整列宽,防止文字截断,保持表格整齐
边框CellRange.Style.Borders清晰区分单元格,增强表格结构感
合并单元格CellRange.Merge()合并跨列标题或备注,改善布局
水平对齐CellRange.Style.HorizontalAlignment设置文本水平对齐,如居中或靠左
垂直对齐CellRange.Style.VerticalAlignment设置文本垂直对齐,如居中或靠上

到此这篇关于使用C#实现设置 Excel单元格格式的示例详解的文章就介绍到这了,更多相关C#设置 Excel单元格格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#如何遍历Dictionary

    C#如何遍历Dictionary

    这篇文章主要为大家详细介绍了C#遍历Dictionary的方法,.NET中的Dictionary是键/值对的集合,使用起来比较方便,Dictionary也可以用KeyValuePair来迭代遍历,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • C#抓取当前屏幕并保存为图片的方法

    C#抓取当前屏幕并保存为图片的方法

    这篇文章主要介绍了C#抓取当前屏幕并保存为图片的方法,实例分析了C#操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • c#生成验证码程序

    c#生成验证码程序

    这篇文章主要介绍了使用c#生成验证码的示例,大家参考使用吧
    2014-01-01
  • c#动态类型,及动态对象的创建,合并2个对象,map实例

    c#动态类型,及动态对象的创建,合并2个对象,map实例

    下面小编就为大家带来一篇c#动态类型,及动态对象的创建,合并2个对象,map实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 轻松学习C#的读写操作

    轻松学习C#的读写操作

    轻松学习C#的读写操作,小编也是第一次接触C#的读写操作,感兴趣的小伙伴们可以参考一下,大家一起学习
    2015-11-11
  • C#实现餐厅管理系统

    C#实现餐厅管理系统

    这篇文章主要为大家详细介绍了C#实现餐厅管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧
    2017-02-02
  • C#开发微信公众号接口开发

    C#开发微信公众号接口开发

    这篇文章主要介绍了C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取,需要的朋友可以参考下
    2015-07-07
  • C#中后台post请求常用的两种方式总结

    C#中后台post请求常用的两种方式总结

    这篇文章主要介绍了C#中后台post请求常用的两种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 基于c# 类、接口、结构的联系与区别详解

    基于c# 类、接口、结构的联系与区别详解

    本篇文章是对c#中类与接口以及结构的联系与区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论