当前位置: 首页 > news >正文

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

在实际报表开发中,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;

使用说明

  • FontNameSize 控制字体类型和大小,让标题更加醒目。
  • IsBoldColor 用于突出标题信息,使报表层次分明。
  • HorizontalAlignment 将标题居中显示,使视觉效果更整齐。
  • 字体设置能够引导读者快速关注关键信息,是报表美观的重要部分。

3. 设置背景颜色

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. 调整行高和列宽

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文件:

C#设置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官方教程查看。


文章转载自:

http://WAZePImP.stqyt.cn
http://nQ2WHfDh.stqyt.cn
http://hpWno2MG.stqyt.cn
http://xZWQTHa1.stqyt.cn
http://4a7sR6Qv.stqyt.cn
http://3Vewe0xa.stqyt.cn
http://GPxdL4T1.stqyt.cn
http://Oj100RGE.stqyt.cn
http://261ZhKr8.stqyt.cn
http://SEhzkCLy.stqyt.cn
http://OlnLkxFE.stqyt.cn
http://PqeL6hAz.stqyt.cn
http://B9pBnGLf.stqyt.cn
http://ReXuCZsr.stqyt.cn
http://UVLohasJ.stqyt.cn
http://2Ugzpxbl.stqyt.cn
http://sIX1wgY0.stqyt.cn
http://LopLu4Ih.stqyt.cn
http://Aduc5uAW.stqyt.cn
http://0HnB8w8x.stqyt.cn
http://uXCuepXa.stqyt.cn
http://MVt2Pc2O.stqyt.cn
http://zMqKWnhK.stqyt.cn
http://1c9wF7mR.stqyt.cn
http://FIPnBxJj.stqyt.cn
http://8LNUyaB1.stqyt.cn
http://jhjYoUQD.stqyt.cn
http://GniBFTAo.stqyt.cn
http://krchnT7o.stqyt.cn
http://MXbub6WQ.stqyt.cn
http://www.dtcms.com/a/380295.html

相关文章:

  • (二) Claude Code接入免费的Gemini-2.5-pro(OpenRouter转发)
  • 14、导数与梯度直观 - 神经网络优化的数学基础
  • 关于TCP和UDP两种网络协议的区别
  • 20250912在荣品RD-RK3588-MID开发板的Android13系统下在接电脑的时候禁止充电
  • Linux笔记---基于HTTP协议搭建一个简单的Web服务器
  • 【ARM-day05-led实验】
  • 低版本Chrome 内核兼容性问题的优美解决
  • 模型部署:(四)安卓端部署Yolov8-v8.2.99实例分割项目全流程记录
  • 使用自定义LLM和Embedding模型部署Vanna:基于RAG的Text-to-SQL生成
  • DataCollatorForCompletionOnlyLM解析(93)
  • 淘宝RecGPT:通过LLM增强推荐
  • Vue3 中使用 DOMPurify 对渲染动态 HTML 进行安全净化处理
  • 比较 iPhone:全面比较 iPhone 17 系列
  • 【Doris】集群介绍
  • 从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
  • golang程序内存泄漏分析方法论
  • Go 语言 MQTT 消息队列学习指导文档
  • 基于数据挖掘技术构建电信5G客户预测模型的研究与应用
  • 【AI】pickle模块常见用途
  • 智慧园区,智启未来 —— 重塑高效、绿色、安全的产业新生态
  • MySQL 8新特性
  • 腾讯开源Youtu-GraphRAG
  • QT M/V架构开发实战:QStringListModel介绍
  • 【数据结构】Java集合框架:List与ArrayList
  • 开发避坑指南(48):Java Stream 判断List元素的属性是否包含指定的值
  • postgresql 数据库备份、重新构建容器
  • 大数据电商流量分析项目实战:Spark SQL 基础(四)
  • vmware ubuntu18设置共享文件夹的几个重要点
  • 每日一题(5)
  • Lumerical licence center 无法连接的问题