在实际报表开发中,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;
使用说明:
FontName
和Size
控制字体类型和大小,让标题更加醒目。IsBold
和Color
用于突出标题信息,使报表层次分明。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官方教程查看。