在C#中,如何以编程的方式设置 Excel 单元格样式
前言
在C#开发中,处理Excel文件是一项常见的任务。在处理Excel文件时,经常需要对单元格进行样式设置,以满足特定的需求和美化要求,通过使用Java中的相关库和API,我们可以轻松地操作Excel文件并设置单元格的样式。
在此博客中,小编将重点介绍如何使用葡萄城公司的服务端表格组件——GrapeCity Documents for Excel(以下简称GcExcel)修改Excel单元格中的各种格式和外观。修改的样式包括下列内容:
- 文本颜色
- 边境
- 文本样式
- 文本对齐和缩进
- 文本方向和方向(角度)
- RichText 控件
- 条件格式
- 单元格样式
1. 文本颜色
文本颜色是基本的外观设置之一,有助于处理多种数据情况,例如
- 突出显示数据中的重要内容,例如温度数值,随着温度升高而变红
- 区分部门或区域销售等数据
- 通过提高注意力水平来促进信息回忆,等等
在 Excel 中,可以使用“工具栏”或“设置单元格格式”对话框中的调色板添加文本颜色,如下所示:

若要使用 GcExcel 添加文本颜色,请使用 IRange 接口的 Font 设置的 Color 或 ThemeColor 属性,如下面的代码所示:
//标准, 系统颜色
worksheet.Range["A1"].Font.Color = Color.Red;
//或者主题颜色
worksheet.Range["A1"].Font.ThemeColor = ThemeColor.Light1;
2. 边框
边框是另一个常用的格式设置选项,它有助于创建可能相关但彼此独立的数据部分,例如发票中的“帐单和运输详细信息”、“列表中的总计”等。
与文本颜色一样,可以从 Excel 中的工具栏和设置单元格格式对话框应用边框。要使用 GcExcel 设置边框,可以使用IRange 接口的 Borders 来设置。
worksheet.Range["A1"].Borders.LineStyle = BorderLineStyle.Dotted;
// 或者
worksheet.Range["A1"].Cells.Borders.LineStyle = BorderLineStyle.Dotted;
3. 文本样式
借助GcExcel,可以使用 Range 接口的 Font 来设置来文本的字体和样式,如下所示:
worksheet.Range["A1"].Font.Bold = true;
worksheet.Range["A1"].Font.Italic = true;
worksheet.Range["A1"].Font.Underline = UnderlineType.Single;
// 或者
worksheet.Range["A1"].Cells.Font.Bold = true;
worksheet.Range["A1"].Cells.Font.Italic = true;
worksheet.Range["A1"].Cells.Font.Underline = UnderlineType.Single;
4. 文本对齐和缩进
文本对齐和缩进是段落格式属性,通常用于格式化整个段落中文本的外观或表格中的数字。
Excel 中有两种类型的文本对齐方式:
- 水平对齐方式,包括以下选项:左对齐、居中对齐、右对齐和对齐
- 垂直对齐选项:顶部、中部和底部

使用 GcExcel,可以使用 Range 接口的 HorizontalAlignment 和 VerticalAlignment 属性以编程方式对齐文本,如下所示:
worksheet.Range["A1"].HorizontalAlignment = HorizontalAlignment.Center;
worksheet.Range["A1"].VerticalAlignment = VerticalAlignment.Top;
缩进有两种类型:左缩进和右缩进。

可以通过使用 Range 接口启用 AddIndent 设置并配置 IndentLevel(接受指示缩进级别的整数)来应用文本缩进,如下面的代码所示:
worksheet.Range["A1:H7"].AddIndent = true;
worksheet.Range["A1:A7"].IndentLevel = 0;
worksheet.Range["B1:B7"].IndentLevel = 1;
worksheet.Range["C1:C7"].IndentLevel = 2;
5. 文本方向和方向(角度)
Excel 中的“文本方向”和“文本旋转”设置有助于特定语言的样式设置。文本方向配置书写方向 - 从左到右 (LTR) 或从右到左 (RTL),可用于阿拉伯语等语言。文本旋转设置文本的角度,对于垂直文本(如 CJK)特别有用。

GcExcel 允许使用 Range 接口的 ReadingOrder 属性来设置文本方向。它接受 ReadingOrder 枚举中的值,如下所示:
worksheet.Range["A1"].ReadingOrder = ReadingOrder.RightToLeft;
可以将 Orientation 属性与 Range 接口一起使用,以添加有角度的文本。它接受从 -90 到 90 或 255(对于垂直文本)的整数值,如下所示:
worksheet.Range["A1"].Orientation = 45;
点击这里查看在线Demo。
6. RichText 控件
GcExcel 支持在单元格中应用富文本格式。富文本格式允许使用不同的颜色、字体、效果(粗体、下划线、双下划线、删除线、下标、上标)等在单元格中设置文本样式。它最终有助于在单个单元格内突出显示和强调文本。
在 Excel 中,若要在单元格中包含富文本,请在编辑模式下输入单元格,然后选择文本的一部分以应用单独的格式,如下所示:

使用 GcExcel,可以使用 IRichText 和 ITextRun 对象配置 RichText,如下所示:
IRichText richText = worksheet.Range["A1"].RichText;
// 添加字符串 “Documents” 到 IRichText 对象并应用格式
ITextRun run1 = richText.Add("Document");
run1.Font.Color = Color.Red;
run1.Font.Bold = true;
run1.Font.Size = 20;
// 附加字符串 “Solutions” 到 IRichText 对象并应用格式化
ITextRun run2 = richText.Add("Solutions");
run2.Font.ThemeFont = ThemeFont.Major;
run2.Font.ThemeColor = ThemeColor.Accent1;
run2.Font.Size = 30;
run2.Font.Underline = UnderlineType.Single;
更多详细信息,请查看帮助文档
试用演示
7. 条件格式
在工作表中,Excel 允许用户对单个或一系列单元格创建条件格式规则,使单元格、行、列或整个工作表中的数据自动应用不同的格式。条件格式可以帮助用户快速可视化和分析数据,突出显示满足特定条件的单元格或数值。

借助GcExcel,可以使用IRange 接口的 FormatConditions 设置条件格式规则集。例如,若要对区域中的唯一值应用条件格式,需要将 AddUniqueValue 的规则添加到 FormatConditions 集合中,如下面的代码所示:
IUniqueValues condition = worksheet.Range["A1:E7"].FormatConditions.AddUniqueValues();
condition.DupeUnique = DupeUnique.Unique;
condition.Font.Name = "Arial";
condition.Interior.Color = Color.Pink;
更多详细信息请查看帮助文档
试用演示
8. 单元格样式
Excel 提供了多种内置单元格样式(如“Good”、“Bad”、“Heading”、“Title”等),以便根据特定数据需求快速设置单元格样式。

借助 GcExcel,可以使用工作簿的 Styles 集合以编程方式将这些快速样式应用于单元格或单元格区域,并将其作为值提供给 IRange.Style 属性,如下所示:
worksheet.Range["A1"].Style = workbook.Styles["Bad"];
试用演示
总结
以上就是借助Java实现Excel 单元格的内容,总体而言,GcExcel 不仅提供了强大的数据管理功能,而且还增加了可编程性,使用户能够提升其数据的可视化表示,实现更有效的通信和分析。
扩展链接:
如何在Web应用中添加一个JavaScript Excel查看器
在C#中,如何以编程的方式设置 Excel 单元格样式的更多相关文章
- POI中设置Excel单元格格式
引用:http://apps.hi.baidu.com/share/detail/17249059 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWork ...
- C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式
前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要 ...
- excel单元格中批量加入固定字符
excel单元格前怎么批量加字母 现在我要在联系人这列,每个姓名前加入衡阳的首字母简写(HY). 3 在同行上面随便找列,我找D列.输入公式:="HY"&A2. 5 输入后 ...
- 如何在excel单元格中插入图片批注
在excel单元格中插入图片批注的方法: 1.选定要插入图片的单元格,然后右键选择插入批注. 2.然后会插入一个批注框,为了不影响图片效果,可以将批注文字都删除.然后鼠标移动到批注框边角再右键. 3. ...
- POI如何自动调整Excel单元格中字体的大小
问题 目的是要将Excel中的文字全部显示出来,可以设置对齐格式为[缩小字体填充],但是这样的话只能展示出一行数据,字体会变得很小.还有一种办法,设置对齐格式为[自动换行],然后让单元格中的字体自动调 ...
- 127使用 TableView 自带的单元格样式实现好友列表,另外在单元格中添加辅助按钮
类似的做法如之前这篇随笔:114自定义UITableViewCell(扩展知识:为UITableViewCell添加动画效果) 相比之下:自定义 UITableViewCell 的内容灵活,可根据需求 ...
- excel中在某一列上的所有单元格的前后增加
excel中在某一列上的所有单元格的前后增加数字汉字字符等东西的函数这样写 “东西”&哪一列&“东西” 例如 “1111”&E1&“3333”
- C#/VB.NET 在Excel单元格中应用多种字体格式
在Excel中,可对单元格中的字符串设置多种不同样式,通常只需要获取到单元格直接设置样式即可,该方法设置的样式会应用于该单元格中的所有字符.如果需要对单元格中某些字符设置样式,则可以参考本文中的方法. ...
- excel单元格对齐方式
需要注意下面几点: 1.强制换行,ctrl+回车 2.快速设置缩进,当我们选择需要调整缩进的单元格之后,点击格式---单元格格式---选择水平对齐方式之后,可以选择缩进. 3.注意跨行居中功能,尤其是 ...
- 在excel单元格中提取信息
平时在excel中处理数据的时候,肯定会遇到在单元格提取信息的情况,比如在地址中提取省.市.地区等,如果数据源内容规整的话,可以直接使用left().right().mid()等函数直接提取,但是大多 ...
随机推荐
- Falcon-7B大型语言模型在心理健康对话数据集上使用QLoRA进行微调
文本是参考文献[1]的中文翻译,主要讲解了Falcon-7B大型语言模型在心理健康对话数据集上使用QLoRA进行微调的过程.项目GitHub链接为https://github.com/iamaru ...
- 「codeforces - 1608F」MEX counting
link. 首先考虑暴力,枚举规划前缀 \([1, i]\) 和前缀 mex \(x\),则我们需要 \(x\) 个数来填了 \([0, x)\),还剩下 \(i-x\) 个数随便填 \([0, x) ...
- iptables和firewalld
iptables简介 iptables不是一个单一的软件工具,而是一套c/s样式的软件组,它是由工作在用户空间的iptables和工作在内核空间的vetilter模块组成,一般统称为Iptables. ...
- Go流程控制与快乐路径原则
Go流程控制与快乐路径原则 目录 Go流程控制与快乐路径原则 一.流程控制基本介绍 二.if 语句 2.1 if 语句介绍 2.2 单分支结构的 if 语句形式 2.3 Go 的 if 语句的特点 2 ...
- 安装vscode
1.下载vscode安装包 因为vscode官网下载太慢, 所以从360的软件库下载: https://baoku.360.cn/soft/search?kw=vscode 2.直接点击安装 3.设置 ...
- 【原型链污染】Python与Js
[原型链污染]Python与Js 一.背景 最近在TSCTF的比赛题中遇到了Python的原型链污染题目,所以借此机会学习一下.说到原型链,最多的还是在Js中,所以就一并学习一下.(因为是菜鸡所以文章 ...
- 【Flask模板注入】
[Flask模板注入]--概览 背景 Flask是python语言下的轻量级web应用框架,可以用来开发一些简单的网站.它使用Jinjia2渲染引擎(将html文件存放在templates文件夹中,当 ...
- CSS之transition属性
1.鼠标移动到div中背景颜色慢慢变化(1个属性的变化) <!DOCTYPE html> <html> <head> <title></title ...
- 8.12 dp模拟赛总结
考场概况: 开考发现题目竟然不保证按难度顺序排序QAQ 正序开题, \(T1\) 显然是数位 \(dp\) 然而没学过不会写,顺手打了 \(30pts\) 暴力走人. \(T2\) 期望 \(dp\) ...
- Java开发中的工作流程和步骤
前言 随着环境的变迁,大家总会更换工作,有裁员的,有跳槽的,除了进进出出的老人,还有源源不断入坑的新人. 很多人入职之后还不知道怎么快速适应工作,对我而言,除去寥寥可数的同事感情,对我而言,更换工作更 ...