使用 C# 设置 Excel 单元格格式

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

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

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


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

csharp 复制代码
using Spire.Xls;
using System.Drawing;

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

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

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


2. 设置单元格字体

csharp 复制代码
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. 设置背景颜色

csharp 复制代码
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. 调整行高和列宽

csharp 复制代码
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. 设置边框

csharp 复制代码
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. 合并单元格

csharp 复制代码
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文件操作技巧,请前往Spire.XLS for .NET官方教程查看。

相关推荐
猷咪21 小时前
C++基础
开发语言·c++
IT·小灰灰21 小时前
30行PHP,利用硅基流动API,网页客服瞬间上线
开发语言·人工智能·aigc·php
快点好好学习吧21 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
秦老师Q21 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
烟锁池塘柳021 小时前
解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题
开发语言
是誰萆微了承諾21 小时前
php 对接deepseek
android·开发语言·php
2601_9498683621 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter
星火开发设计21 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
qq_177767371 天前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
一匹电信狗1 天前
【LeetCode_21】合并两个有序链表
c语言·开发语言·数据结构·c++·算法·leetcode·stl