使用 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://www.pswp.cn/diannao/100288.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/100288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis篇章3:Redis 企业级缓存难题全解--预热、雪崩、击穿、穿透一网打尽

在企业级应用场景中,Redis 作为高性能缓存利器,极大提升了系统响应速度,但随着业务复杂度和并发量的攀升,缓存相关的各类挑战也接踵而至。比如系统启动时缓存缺失导致的数据库压力、大量缓存同时失效引发的连锁故障、热点数据过期…

【数值分析】02-绪论-误差

参考资料: 书籍: 数值分析简明教程/王兵团,张作泉,张平福编著. --北京:清华大学出版社;北京交通大学出版社,2012.8 视频:学堂在线APP中北京交通大学“数值分析I” 前期回顾 【数值分…

P3918 [国家集训队] 特技飞行

P3918 [国家集训队] 特技飞行 - 洛谷 思路: 因为如果连续进行相同的动作,乘客会感到厌倦,所以定义某次动作的价值为(距上次该动作的时间) ci​,若为第一次进行该动作,价值为 0。同一个动作,价值为ci*(最后一…

Python爬虫实战:研究Pandas,构建期货数据采集和分析系统

1. 引言 1.1 研究背景 期货市场作为金融市场的重要组成部分,具有价格发现、风险管理和资源配置的重要功能。上海期货交易所(Shanghai Futures Exchange, SHFE)作为中国四大期货交易所之一,上市交易的品种包括铜、铝、锌、黄金、白银等多种大宗商品期货,其交易数据反映了…

Linux第十七讲:应用层自定义协议与序列化

Linux第十七讲:应用层自定义协议与序列化1.什么是序列化和反序列化2.重新理解read、write为什么支持全双工3.网络版计算器的实现3.1socket的封装 -- 模板方法模式引入3.2序列化和反序列化 && json3.3协议的实现3.4 服务端整体看 -- 所有代码3.5七层协议&…

附录:Tomcat下载及启动

一、打开Tomcat官网windows下载第四个压缩包,下载完成后解压缩。(安装路径不要带有中文和特殊符号)二、启动Tomcat进入bin文件夹:\Tomcat\apache-tomcat-11.0.11\bin,找到startup.bat文件点击,黑窗口常驻即…

【CTF-WEB】表单提交(特殊参数:?url=%80和?url=@)(通过GBK编码绕过实现文件包含读取flag)

题目 寻找这个单纯的网站的flag 前端代码&#xff1a; <!DOCTYPE html> <head><title>CAT</title> </head><body> <h1>Cloud Automated Testing</h1> <p>输入你的域名&#xff0c;例如&#xff1a;loli.club</p>…

(k8s)Kubernetes 资源控制器关系图

Kubernetes 资源控制器关系图 #mermaid-svg-da6tzgmJn70StNQM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-da6tzgmJn70StNQM .error-icon{fill:#552222;}#mermaid-svg-da6tzgmJn70StNQM .error-text{fill:#55222…

模电基础:场效应管

目录 一、场效应管概述 二、结型场效应管&#xff1a;基础场效应管 &#xff08;1&#xff09;基本结构&#xff1a;PN结导电沟道 &#xff08;2&#xff09;工作原理&#xff1a;耗尽区挤压沟道从而控制电流 &#xff08;3&#xff09;特性曲线 1.转移特性 2.输出特性 …

开发安全利器:detect-secrets 敏感信息扫描工具实战指南

在现代软件开发流程中&#xff0c;代码安全已成为不可忽视的重要环节。尤其是在 DevSecOps 的理念逐渐普及的今天&#xff0c;如何在开发早期就发现并消除潜在的安全隐患&#xff0c;成为每一个开发者和安全工程师必须面对的问题。其中&#xff0c;敏感信息泄露&#xff08;Sec…

数字经济专业核心课程解析与职业发展指南

在数字经济高速发展的时代&#xff0c;选择一门与未来趋势紧密关联的专业至关重要。数字经济专业作为新兴交叉学科&#xff0c;既涵盖传统经济理论&#xff0c;又融合了大数据、人工智能等前沿技术。想要在这一领域脱颖而出&#xff0c;考取权威证书是提升竞争力的有效途径。其…

使用yolo11训练航拍图片微小目标AI-TOD检测数据集无损压缩版YOLO格式14018张8类别已划分好训练验证集步骤和流程

【数据集介绍】我们基于公开的大规模航空图像数据集构建了AI-TOD&#xff0c;这些数据集包括&#xff1a;DOTA-v1.5的训练验证集[1]、xView的训练集[19]、VisDrone2018-Det的训练验证集[20]、Airbus Ship的训练验证集1以及DIOR的训练验证测试集[3]。这些数据集的详细信息如下&a…

sward V2.0.6版本发布,支持OnlyOffice集成、文档权限控制及归档等功能

1、版本更新日志新增新增目录文档权限控制新增新增知识库、文档归档功能集成OnlyOffice支持word文档预览、编辑新增MarkDown代码块根据语言展示不同样式优化优化富文本在小屏幕操作调整优化部分界面展示效果优化知识库图片展示效果2、目录与文档权限控制默认情况下&#xff0c;…

多因子AI回归揭示通胀-就业背离,黄金价格稳态区间的时序建模

摘要&#xff1a;本文通过构建包含通胀韧性、就业疲软、货币政策预期及跨市场联动的多因子量化模型&#xff0c;结合美国8月CPI超预期上行与初请失业金人数激增的动态数据&#xff0c;分析黄金价格的高位持稳机制&#xff0c;揭示就业市场对美联储降息预期的协同支撑效应。一、…

Java--多线程基础知识(2)

一.多线程的中断1.通过自定义的变量来作为标志位import java.util.Scanner;public class Demo1 {public static boolean flg false;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(()->{while (!flg){System.out.println(&qu…

Qit_计网笔记

第1章 概述1.1 计算机网络在信息时代中的作用一、计算机网络基础概念&#xff08;一&#xff09;计算机网络的定义定义&#xff1a;计算机网络在信息时代中起到核心作用&#xff0c;实现了万物联网和人人用网的目标。&#xff08;二&#xff09;计算机网络的特点信息时代特征&a…

【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等

目录 前言 一、简介一下C11 二、{}列表初始化 三、右值引用和移动语义 四、右值引用和移动语义的使用场景 五、右值引用和移动语义在传参中的提效 六、引用折叠和完美转发 七、可变参数模板 前言 本文主要介绍C11中新增的一些重要语法&#xff1a;包括initializer_list列表初…

MP3 ID3标签中的数字流派代码和文本值翻译成的中文列表

将MP3 ID3标签中的数字流派代码和文本值翻译成的中文列表&#xff1a;■ 数字代码流派:0 布鲁斯 (Blues)1 古典摇滚 (Classic Rock)2 乡村音乐 (Country)3 舞曲 (Dance)4 迪斯科 (Disco)5 放克 (Funk)6 垃圾摇滚 (Grunge)7 嘻哈 (Hip-Hop)8 爵士乐 (Jazz)9 金属乐 (M…

U8g2库为XFP1116-07AY(128x64 OLED)实现菜单功能[ep:esp8266]

使用U8g2库为XFP1116-07AY&#xff08;128x64 OLED&#xff09;实现菜单功能&#xff0c;核心是通过按键控制菜单切换、光标移动和选项选中&#xff0c;结合U8g2的绘图/文本函数实现交互逻辑支持多级菜单&#xff08;主菜单→子菜单→功能执行&#xff09;&#xff0c;并兼容ES…

easy-dataset 框架综合技术分析:面向领域特定 LLM 指令数据的合成

摘要 本报告对 easy-dataset 框架 进行全面技术剖析&#xff0c;该框架旨在解决大型语言模型&#xff08;LLM&#xff09;在特定领域应用中的核心瓶颈——高质量指令微调数据的稀缺性。随着 LLM 技术发展&#xff0c;其应用能力不再仅依赖模型参数规模&#xff0c;而是更依赖通…