使用C#實現(xiàn)設(shè)置 Excel單元格格式的示例詳解
在實際報表開發(fā)中,Excel 的可讀性和美觀性與數(shù)據(jù)本身同樣重要。合理的單元格格式設(shè)置不僅能讓數(shù)據(jù)一目了然,還能讓報表顯得更專業(yè)。通過使用 C#,開發(fā)者可以精確控制 Excel 文件的單元格樣式,無需依賴 Microsoft Office。
本文演示如何在 同一個工作表中設(shè)置 字體、背景顏色、行高列寬、邊框和單元格合并,并說明每個操作的作用和適用場景,幫助你真正理解 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 = "銷售報表";
操作說明:創(chuàng)建一個新的工作簿并獲取第一個工作表。所有后續(xù)格式操作都在這個工作表中進(jìn)行,保證操作集中一致。Worksheet 類是 Spire.XLS 中處理單個工作表的核心類,提供訪問行、列和單元格以及進(jìn)行格式設(shè)置的功能。
注意設(shè)置完格式之后,使用Workbook.SaveToFile()保存Excel工作簿到文件。
2. 設(shè)置單元格字體
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控制字體類型和大小,讓標(biāo)題更加醒目。IsBold和Color用于突出標(biāo)題信息,使報表層次分明。HorizontalAlignment將標(biāo)題居中顯示,使視覺效果更整齊。- 字體設(shè)置能夠引導(dǎo)讀者快速關(guān)注關(guān)鍵信息,是報表美觀的重要部分。
3. 設(shè)置背景顏色
CellRange header = sheet.Range["B4:D4"]; header.Text = "產(chǎn)品類別\t數(shù)量\t金額"; header.Style.Color = Color.LightGray; header.Style.Font.IsBold = true; header.Style.HorizontalAlignment = HorizontalAlignType.Center;
作用說明:
- 背景顏色主要用于區(qū)分表頭和數(shù)據(jù)區(qū),使報表層次清晰。
- 灰色背景是常用的表頭樣式,同時加粗字體進(jìn)一步增強可讀性。
- 使用背景顏色可以讓讀者更容易理解數(shù)據(jù)分組和重點內(nèi)容。
4. 調(diào)整行高和列寬
sheet.Rows[1].RowHeight = 30; // 標(biāo)題行高度 sheet.Rows[3].RowHeight = 25; // 表頭行高度 sheet.Columns[1].ColumnWidth = 20; // 產(chǎn)品類別列寬 sheet.Columns[2].ColumnWidth = 15; // 數(shù)量列寬 sheet.Columns[3].ColumnWidth = 15; // 金額列寬
使用場景:
- 行高和列寬影響數(shù)據(jù)展示完整性和表格整齊度。
- 調(diào)整行高 (
RowHeight) 和列寬 (ColumnWidth) 可以防止文字截斷,同時讓表格視覺上更平衡。 - 對于長標(biāo)題或數(shù)字密集的表格,這一步尤其重要。
5. 設(shè)置邊框
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;
操作說明:
- 邊框可以清晰區(qū)分?jǐn)?shù)據(jù)單元格,使表格結(jié)構(gòu)更明確。
- Spire.XLS 提供多種邊框類型和線條樣式,可自由組合。
- 使用細(xì)線 (
Thin) 的邊框在數(shù)據(jù)表格中最常見,不會破壞整體視覺效果。
6. 合并單元格
sheet.Range["B2:D2"].Merge(); // 合并標(biāo)題單元格 sheet.Range["B7:D7"].Merge(); // 合并備注單元格 sheet.Range["B7"].Text = "數(shù)據(jù)來源:公司內(nèi)部系統(tǒng)"; sheet.Range["B7"].Style.HorizontalAlignment = HorizontalAlignType.Center; sheet.Range["B7"].Style.Font.IsItalic = true;
使用說明:
- 合并單元格 (
Merge()) 常用于跨列的標(biāo)題或備注,讓內(nèi)容在視覺上更突出。 - 合并后通常需要設(shè)置居中對齊,否則文字會顯示在左上角。
- 適當(dāng)使用合并單元格可以讓報表布局更整潔專業(yè)。
7. 效果展示(示例表格)
下面是經(jīng)過上述格式設(shè)置后保存的Excel文件:

綜合效果展示了字體、背景色、行高列寬、邊框和合并單元格的應(yīng)用。
8. 關(guān)鍵類、方法與屬性總結(jié)
| 操作類型 | 關(guān)鍵類/屬性 | 使用說明 |
|---|---|---|
| 字體 | CellRange.Style.Font | 設(shè)置字體類型、大小、顏色、加粗、斜體等,突出標(biāo)題或重點數(shù)據(jù) |
| 背景色 | CellRange.Style.Color | 區(qū)分表頭和數(shù)據(jù)區(qū),使報表層次清晰 |
| 行高 | Worksheet.Rows[].RowHeight | 調(diào)整行高度,保證內(nèi)容顯示完整 |
| 列寬 | Worksheet.Columns[].ColumnWidth | 調(diào)整列寬,防止文字截斷,保持表格整齊 |
| 邊框 | CellRange.Style.Borders | 清晰區(qū)分單元格,增強表格結(jié)構(gòu)感 |
| 合并單元格 | CellRange.Merge() | 合并跨列標(biāo)題或備注,改善布局 |
| 水平對齊 | CellRange.Style.HorizontalAlignment | 設(shè)置文本水平對齊,如居中或靠左 |
| 垂直對齊 | CellRange.Style.VerticalAlignment | 設(shè)置文本垂直對齊,如居中或靠上 |
到此這篇關(guān)于使用C#實現(xiàn)設(shè)置 Excel單元格格式的示例詳解的文章就介紹到這了,更多相關(guān)C#設(shè)置 Excel單元格格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實現(xiàn)定義一套中間SQL可以跨庫執(zhí)行的SQL語句(案例詳解)
這篇文章主要介紹了C#實現(xiàn)定義一套中間SQL可以跨庫執(zhí)行的SQL語句,主要包括hisql查詢樣例、group by查詢、鏈?zhǔn)讲樵兗癶isql語句和鏈?zhǔn)讲樵兓煊玫膕ql語句,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
詳解如何實現(xiàn)C#和Python間實時視頻數(shù)據(jù)交互
我們在做RTSP|RTMP播放的時候,遇到好多開發(fā)者,他們的視覺算法大多運行在python下,需要高效率的實現(xiàn)C#和Python的視頻數(shù)據(jù)交互,本文給大家總結(jié)了一些常用的方法,感興趣的小伙伴跟著小編一起來看看吧2024-10-10
C# 建造者模式(Builder Pattern)詳細(xì)講解
建造者模式是一種創(chuàng)建型設(shè)計模式,通過將復(fù)雜對象的構(gòu)建過程與其表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示,它適用于構(gòu)建過程復(fù)雜且涉及多個步驟的場景,本文介紹C# 建造者模式(Builder Pattern)詳細(xì)講解,感興趣的朋友一起看看吧2025-03-03
基于C#實現(xiàn)的仿windows左側(cè)伸縮菜單效果
這篇文章主要介紹了基于C#實現(xiàn)的仿windows左側(cè)伸縮菜單效果,比較實用的功能,需要的朋友可以參考下2014-08-08

