C# 生成 Excel 时如何动态设置单元格填充颜色

在日常报表开发中,给 Excel 单元格设置背景色是提升数据可读性、区分数据层级最直接有效的方法之一。下面介绍如何使用免费的 Free Spire.XLS for .NET 库,通过 C# 代码以编程方式实现三种常见的背景设置:纯色填充、纹理填充和渐变填充。

在开始之前,先通过 NuGet 包管理器安装该库:

Install-Package FreeSpire.XLS

然后在代码中引入必要的命名空间:

using Spire.Xls;
using System.Drawing;

一、设置纯色背景

纯色背景是最常用的单元格填充方式,适合用于表头、数据分类标记或重点数据高亮。

// 创建工作簿并获取第一个工作表
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

// 获取目标单元格,设置文本内容
CellRange cell = sheet.Range["B2"];
cell.Text = "纯色背景";

// 设置填充类型为纯色,并指定背景颜色
cell.Style.FillPattern = ExcelPatternType.Solid;
cell.Style.Color = Color.LightGreen;

// 保存文件
workbook.SaveToFile("CellSolidColor.xlsx", ExcelVersion.Version2016);
workbook.Dispose();

要点:FillPattern = ExcelPatternType.Solid 表示纯色填充;Style.Color 属性用于设置填充颜色。


二、设置纹理背景

纹理背景可以在纯色基础上叠加图案,让单元格更具层次感。FillPattern 属性提供了多种内置纹理样式,如角度纹理、砖块纹理、细点纹理等。

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

CellRange cell = sheet.Range["B2"];
cell.Text = "纹理背景";

// 设置填充类型为角度纹理
cell.Style.FillPattern = ExcelPatternType.Angle;
cell.Style.Color = Color.LightGray;    // 背景色
cell.Style.PatternColor = Color.Beige; // 纹理色

workbook.SaveToFile("CellPattern.xlsx", ExcelVersion.Version2016);
workbook.Dispose();

要点:PatternColor 用于指定纹理图案的颜色,与 Color(背景色)配合使用。


三、设置渐变背景

渐变背景能让单元格颜色产生平滑过渡,视觉效果更丰富。设置方式与纯色和纹理略有不同,需要通过 Interior 对象来操作。

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

CellRange cell = sheet.Range["B2"];
cell.Text = "渐变背景";

// 设置填充类型为渐变
cell.Style.FillPattern = ExcelPatternType.Gradient;
cell.Style.Interior.Gradient.GradientStyle = GradientStyleType.Vertical;
cell.Style.Interior.Gradient.ForeColor = Color.Orange;
cell.Style.Interior.Gradient.BackColor = Color.LightYellow;

workbook.SaveToFile("CellGradient.xlsx", ExcelVersion.Version2016);
workbook.Dispose();

要点:GradientStyle 控制渐变样式(水平、垂直等),ForeColor 和 BackColor 分别指定渐变的两端颜色。


四、为单元格区域设置背景

除了单个单元格,Range 属性同样支持为连续区域统一设置背景:

// 为表头区域设置背景色
sheet.Range["A1:E1"].Style.Color = Color.MediumSeaGreen;

// 为数据区域设置背景色
sheet.Range["A2:A10"].Style.Color = Color.LightYellow;

注意事项

  • 填充类型:设置纯色背景时,务必先将 FillPattern 设为 Solid,否则颜色可能不生效。
  • 颜色命名空间:Color 类位于 System.Drawing 命名空间,支持预定义颜色(如 Color.Red)和自定义 RGB 颜色。
  • 文件保存:SaveToFile 方法的第二个参数可指定 Excel 版本(如 Version2016、Version2013 等),确保兼容性。
  • 资源释放:操作完成后调用 Dispose() 释放资源。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容