在Java中,如何以编程的方式设置 Excel 单元格样式

链式冰川
• 阅读 268

前言

在Java开发中,处理Excel文件是一项常见的任务。在处理Excel文件时,经常需要对单元格进行样式设置,以满足特定的需求和美化要求,通过使用Java中的相关库和API,我们可以轻松地操作Excel文件并设置单元格的样式。

在本文中,小编将介绍如何借助葡萄城公司的Java API 组件——GrapeCity Documents for Excel(以下简称GcExcel)修改Excel单元格中的各种格式和外观。修改的样式包括下列内容:

  • 文本颜色
  • 边框
  • 文本样式
  • 文本对齐和缩进
  • 文本方向和角度
  • RichText 控件
  • 条件格式
  • 单元格样式

1. 文本颜色

文本颜色是基本的外观设置之一,有助于处理多种数据情况,例如

  • 突出显示数据中的重要内容,例如温度数值,随着温度升高而变红
  • 区分部门或区域销售等数据

在 Excel 中,可以使用“工具栏”或“设置单元格格式”对话框中的调色板添加文本颜色,如下所示:
在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel,可以通过IRange 接口的 Font 设置的 ColorThemeColor 属性,如下面的代码所示:

//标准, 系统颜色
worksheet.getRange("A1").getFont().setColor(Color.GetRed());

//或者主题颜色
worksheet.getRange("A1").getFont().setThemeColor(ThemeColor.Light1);

2. 边框

边框是另一个常用的格式设置选项, 借助GcExcel,可以使用IRange 接口的 Borders 来设置。

worksheet.getRange("A1").getBorders().setLineStyle(BorderLineStyle.Dotted);
// 或者
worksheet.getRange("A1").getCells().getBorders().setLineStyle(BorderLineStyle.Dotted)

3. 文本样式

借助GcExcel,可以使用 IRange 接口的 Font 来设置文本的字体和样式:

//设置粗体
worksheet.getRange("A1").getFont().setBold(true);
//设置斜体
worksheet.getRange("A1").getFont().setItalic(true);
//设置下划线
worksheet.getRange("A1").getFont().setUnderline(UnderlineType.Single);

4. 文本对齐和缩进

文本对齐和缩进是段落格式属性,通常用于格式化整个段落中文本的外观或表格中的数字。

Excel 中有两种类型的文本对齐方式:

  • 水平对齐方式,包括以下选项:左对齐、居中对齐、右对齐和对齐
  • 垂直对齐选项:顶部、中部和底部

在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel,可以使用 IRange 接口的 HorizontalAlignment 和 VerticalAlignment 属性以编程方式对齐文本,如下所示:

//水平对齐
worksheet.getRange("A1").setHorizontalAlignment(HorizontalAlignment.Center);
//垂直对齐
worksheet.getRange("A1").setVerticalAlignment(VerticalAlignment.Top);

缩进有两种类型:左缩进和右缩进。
在Java中,如何以编程的方式设置 Excel 单元格样式

可以通过使用 IRange 接口启用 AddIndent 设置并配置 IndentLevel(接受指示缩进级别的整数)来应用文本缩进,如下面的代码所示:

worksheet.getRange("A1:H7").setAddIndent(true);
worksheet.getRange("A1:A7").setIndentLevel(0);
worksheet.getRange("B1:B7").setIndentLevel(1);
worksheet.getRange("C1:C7").setIndentLevel(2);

5. 文本方向和角度

Excel 中的“文本方向”和“文本旋转”设置有助于特定语言的样式设置。文本方向配置书写方向 - 从左到右 (LTR) 或从右到左 (RTL),可用于阿拉伯语等语言。文本旋转设置文本的角度,对于垂直文本(如 CJK)特别有用。
在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel ,可以使用 IRange 接口的 ReadingOrder 属性来设置文本方向。它接受 ReadingOrder 枚举中的值,如下所示:

worksheet.getRange("A1").setReadingOrder(ReadingOrder.RightToLeft);

可以将 Orientation 属性与 IRange 接口一起使用,以添加有角度的文本。它接受从 -90 到 90 或 255(对于垂直文本)的整数值,如下所示:

worksheet.getRange("A1").setOrientation(45);

点击这里查看在线Demo。

6. RichText 控件

在Excel中,若要在单元格中包含富文本,在编辑模式下输入单元格,然后选择文本的一部分以应用单独的格式,如下所示:
在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel,可以使用 IRichTextITextRun 对象配置 RichText:

IRichText richText = worksheet.getRange("A1").getRichText();
// 添加字符串 “Documents” 到 IRichText 对象并应用格式
ITextRun run1 = richText.add("Document");
run1.getFont().setColor(Color.GetRed());
run1.getFont().setBold(true);
run1.getFont().setSize(20);

// 附加字符串 “Solutions” 到 IRichText 对象并应用格式化
ITextRun run2 = richText.add("Solutions");
run2.getFont().setThemeFont(ThemeFont.Major);
run2.getFont().setThemeColor(ThemeColor.Accent1);
run2.getFont().setSize(30);
run2.getFont().setUnderline(UnderlineType.Single);

更多详细信息请查看帮助文档

点击这里查看Demo演示。

7. 条件格式

在工作表中,Excel 允许用户对单个或一系列单元格创建条件格式规则,使单元格、行、列或整个工作表中的数据自动应用不同的格式。条件格式可以帮助用户快速可视化和分析数据,突出显示满足特定条件的单元格或数值。
在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel,可以使用IRange 接口的 FormatConditions 设条件格式规则集。例如,若要对区域中的唯一值应用条件格式,需要将 AddUniqueValue 的规则添加到 FormatConditions 集合中,如下面的代码所示:

IUniqueValues condition = worksheet.getRange("A1:E7").getFormatConditions().addUniqueValues();
condition.setDupeUnique(DupeUnique.Unique);
condition.getFont().setName("Arial");
condition.getInterior().setColor(Color.GetPink());

更多详细信息请查看帮助文档

点击这里查看Demo演示。

8. 单元格样式

Excel 提供了多种内置单元格样式(如“Good”、“Bad”、“Heading”、“Title”等),以便根据特定数据需求快速设置单元格样式。
在Java中,如何以编程的方式设置 Excel 单元格样式

借助GcExcel,可以使用工作簿的 Styles 集合以编程方式将这些快速样式应用于单元格或单元格区域,并将其作为值提供给 IRange.Style 属性:

worksheet.getRange("A1").setStyle(workbook.getStyles().get("Bad"));

点击这里查看Demo演示。

总结

以上就是借助Java实现Excel 单元格的内容,总体而言,GcExcel 不仅提供了强大的数据管理功能,而且还增加了可编程性,使用户能够提升其数据的可视化表示,实现更有效地通信和分析。

扩展链接:

Redis从入门到实践

一节课带你搞懂数据库事务!

Chrome开发者工具使用教程

如何在Web应用中添加一个JavaScript Excel查看器

高性能渲染——详解HTML Canvas的优势与性能

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
UIPath入门系列三之操作Excel表格
介绍如何使用UIPath操作Excel一、Excel/Workbooks与DataTables的区别Excel/Workbooks是一个excel文件,里面可以存储各种类型的数据,可格式化,布局,合并单元格及多个数据表DataTables只是最简单的电子表格数据类型,只有行和列和可选标题
Wesley13 Wesley13
3年前
java使用POI将数据导出放入Excel
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术。POI介绍使用springboot导入相关依赖获取数据(自行处理)完整代码实例:创建excel,将数据写入excel1.POI介绍要想使用POI对Excel进行操作,我们需要先了
Wesley13 Wesley13
3年前
java,poi读取excel单元格为空的数据,出现空指针异常:java.lang.NullPointerException
java,poi读取excel单元格为空的数据,出现空指针异常:java.lang.NullPointerException参考文章:(1)java,poi读取excel单元格为空的数据,出现空指针异常:java.lang.NullPointerException(https://www.oschina.net/action/GoToLi
使用皕杰报表遇到的问题小结
一.单元格换行问题reportres\skin\table.css下.sswordbreak:breakall;lineheight:1;在单元格属性,WEB相关设置,CSS样式名里添加ss,选择不作为表达式处理。二.在皕杰报表单元格中显示特殊字符在使用皕杰报表的时候经常遇到特殊字符的输入,比如显示小方块或小方块里带√号,那么这些特殊符合如何输入呢?1、
Wesley13 Wesley13
3年前
Java如何准确判断是Excel文件
这两天逛guthub,看到一个Java操作Excel文件的项目,突然想到我们公司的WEB应用,也经常会涉及到Excel的操作,比如说很常用的Excel文件导入。那么我们是如何判断出,上传的文件确实是Excel文件呢?我翻阅了一下我们系统里面的代码,常见的写法如下:!(https://oscimg.oschina.net/osc
Stella981 Stella981
3年前
Excel数据转化为sql脚本
在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。1在数据前插入一列单元格,用来拼写sql语句。 具体写法:"insertintot\_student(id,name,age,class)value("&B2&",'"&C2&"',"&D2&"
Stella981 Stella981
3年前
Python操作Excel
前言:Python操作Excel使用openpyxl模块,python中有好几个与excel相关操作的模块。xlrd库:从excel中读取数据,支持xls、xlsx格式。xlwt库:对excel进行修改操作,不支持对xlsx格式的修改。xlutils库:在xlrd和xlwd中对一个已存在的文件进行修改。openpyxl库:
Wesley13 Wesley13
3年前
Java 复杂excel报表导出
MyExcel,是一个可直接使用Html文件,或者使用内置的Freemarker、Groovy、Beetl等模板引擎Excel构建器生成的Html文件,以Html文件中的Table作为Excel模板来生成任意复杂布局的Excel的工具包,支持.xls、.xlsx格式,支持对背景色、边框、字体等进行个性化设置,支持合并单元格。Github:https:/
LeeFJ LeeFJ
2年前
Foxnic-SQL (15) —— 使用记录集导入或导出Excel
很多时候,我们需要将外部Excel表中的数据导入到数据库,或是需要将某个查询结果导出到Excel文件中,对于这种简单的操作,FoxnicSQL已经内置了ExcelReader和ExcelWriter用于处理Excel数据。本文中的示例代码均可在https://gitee.com/LeeFJ/foxnicsamples项目中找到。读取Excel到RcdSetFoxnicSQL使用ExcelReader类读取Excel中某个sheet的数据,这些数据将被读取到RcdSet,通过RcdSet可以完成数据库保存等操作。在读取Excel前需要定义Excel结构,将Excel列映射到数据库字段,如下代码所示。一旦Excel数据转换成RcdSet,开发人员就可以去做其它更多额外的数据处理。
秋桐 秋桐
2年前
Java 向Excel中写入数组
在编辑Excel文档时,除了借助办公软件手动在工作表中输入数据外,也可以以编程的方式来进行此项操作。以Java编程为例。通过使用免费版的FreeSpire.XLSforJava库,可以凭借代码,轻松高效地向Excel写入一维和二维数组。相关的示例代码和代码
Python进阶者 Python进阶者
1年前
盘点一个Python自动化办公Excel数据处理的需求
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【干锅牛蛙】问了一个Python处理Excel数据的问题。问题如下:有两个问题哈:1、表头有合并单元格识别不出来,如何处理类似下图2、遇到单元格有公式自动识别成了0,如何处理,保留计算后