在實際報表開發中,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;
使用説明:
FontName和Size控制字體類型和大小,讓標題更加醒目。IsBold和Color用於突出標題信息,使報表層次分明。HorizontalAlignment將標題居中顯示,使視覺效果更整齊。- 字體設置能夠引導讀者快速關注關鍵信息,是報表美觀的重要部分。
3. 設置背景顏色
CellRange header = sheet.Range["B4:D4"];
header.Columns[0].Text = "產品類別";
header.Columns[1].Text = "數量";
header.Columns[2].Text = "金額";
header.Style.Color = Color.LightGray;
header.Style.Font.IsBold = true;
header.Style.HorizontalAlignment = HorizontalAlignType.Center;
header.Style.VerticalAlignment = VerticalAlignType.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文件操作技巧,請前往Spire.XLS for .NET官方教程查看。