Java通过cellstyle属性设置Excel单元格常用样式全面总结

news2024/11/24 15:59:27

最近做了一个导出Excel的功能,导出是个常规导出,但是拿来模板一看,有一些单元格的样式设置,包括合并,背景色,字体等等,毕竟不是常用的东西,需要查阅资料完成,但是搜遍全网没有一个全面的,工作完成后,我便总结了一下,能够应对日常开发使用的Excel样式设置属性。

这里重点总结生成Excel中对单元格的样式设置,不讲解如何导出Excel,基本导出很容易。

直接上代码,按照注释来看依次是:

首先创建一个工作薄

下面所有的操作都是对这个style对象来设置的。

        // 创建excel工作簿
        SXSSFWorkbook wb = new SXSSFWorkbook(getXSSFWorkbook(examPath), 1000);
        //获取样式
        CellStyle style = wb.createCellStyle();

1.设置单元格对齐,属性使用参照注解


                //1、先设置单元格对齐方式
                //水平对齐,一般对齐方式。文本数据左对齐。数字、日期和时间是正确对齐的。布尔类型居中。
                style.setAlignment(HorizontalAlignment.GENERAL);
                //靠左
                style.setAlignment(HorizontalAlignment.LEFT);
//                靠右
                style.setAlignment(HorizontalAlignment.RIGHT);
//                居中
                style.setAlignment(HorizontalAlignment.CENTER);
//               填充单元格的值,跨越单元格的整个宽度
                style.setAlignment(HorizontalAlignment.FILL);
//                水平对齐对齐(左右齐平)。对于每行文本,将单元格中换行文本的每行左右对齐
                style.setAlignment(HorizontalAlignment.JUSTIFY);
//                水平对齐在多个单元格中居中
                style.setAlignment(HorizontalAlignment.CENTER_SELECTION);
                //平铺。表示单元格中每行文本中的text均匀分布.跨越单元格的宽度,左右外边距齐平。
                style.setAlignment(HorizontalAlignment.DISTRIBUTED);

2.设置单元格垂直对齐,参考注解

//2.此枚举值指示单元格的垂直对齐类型,即:
                //垂直居中对齐
                style.setVerticalAlignment(VerticalAlignment.CENTER);
                //顶部对齐
                style.setVerticalAlignment(VerticalAlignment.TOP);
                //底部对齐
                style.setVerticalAlignment(VerticalAlignment.BOTTOM);
                //对齐。
                style.setVerticalAlignment(VerticalAlignment.JUSTIFY);
                //分布。
                style.setVerticalAlignment(VerticalAlignment.DISTRIBUTED);

3.设置背景色

 
         //3.设置背景色
         style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
          //必须设置 否则背景色不生效
         style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

背景色的IndexedColors类中属性对应的具体颜色如下所示:

(1)枚举值对应的颜色

(2)色卡名称对应的颜色

 GREY_80_PERCENTINDIGO

PLUM                           BROWN

OLIVE_GREEN            DARK_GREEN

SEA_GREEN              DARK_TEAL

GREY_40_PERCENT  BLUE_GREY

ORANGE                    LIGHT_ORANGE

GOLD                        LIME

AQUA                       LIGHT_BLUE

TAN                        LAVENDER

ROSE                    PALE_BLUE

LIGHT_YELLOW           LIGHT_GREEN

LIGHT_TURQUOISE        SKY_BLUE

BLUE                               DARK_RED

VIOLET                          TURQUOISE

YELLOW                       PINK

DARK_BLUE   LIGHT_CORNFLOWER_BLUE

ROYAL_BLUE                         CORAL

ORCHID                         LIGHT_TURQUOISE

LEMON_CHIFFON           PLUM

CORNFLOWER_BLUE   GREY_50_PERCENT

GREY_25_PERCENT            TEAL

VIOLET                     DARK_YELLOW

DARK_BLUE                      GREEN

DARK_RED                    TURQUOISE

PINK                           YELLOW

BLUE                   BRIGHT_GREEN

RED                      WHITE

BLACK

4.设置字体有关样式

基本涵盖了Excel中对文字常用的操作行为

 //4.设置字体样式
                Font titleFont = wb.createFont();
//                设置字体的名称(例如Arial)
                titleFont.setFontName("宋体");
//                以1/20点为单位设置字体高度。
                titleFont.setFontHeight((short) 10);
//                设置是否使用斜体
                titleFont.setItalic(true);
//                设置是否在文本中使用删除线横线
                titleFont.setStrikeout(true);
                //颜色设置
                titleFont.setColor((short) 111);
//                设置普通、上标或下标。
                titleFont.setTypeOffset((short) 5);
                //下划线
                titleFont.setUnderline((byte) 0000);
//                是否加粗
                titleFont.setBold(true);
//                设置字体高度
                titleFont.setFontHeightInPoints((short) 12);
                style.setFont(titleFont);

5.边框设置

//5.边框设置
                style.setBorderBottom(BorderStyle.THIN);
                style.setBorderLeft(BorderStyle.THIN);
                style.setBorderTop(BorderStyle.THIN);
                style.setBorderRight(BorderStyle.THIN);

6.单元格合并操作

合并单元格使用的是CellRangeAddress函数,该函数源码在下面,可以清晰看到输入参数代表什么怎么用,简单解释一下就是

X:起始行  Y:结束行  a:起始列   b:结束列

这样就清晰的画出了一个合并范围。

 // 6.合并单元格
 SXSSFSheet sheet = wb.createSheet("测试sheet");
 sheet.addMergedRegion(new CellRangeAddress(X, Y, a, b));
//设置单元格宽度 ,X代表第几列
 sheet.setColumnWidth(X, 20 * 260);
public CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) {
		super(firstRow, lastRow, firstCol, lastCol);
		
		if (lastRow < firstRow || lastCol < firstCol) {
			throw new IllegalArgumentException("Invalid cell range, having lastRow < firstRow || lastCol < firstCol, " +
					"had rows " + lastRow + " >= " + firstRow + " or cells " + lastCol + " >= " + firstCol);
		}
	}

工作之余总结一下,也是方便自己日后使用,有不对的地方欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1163103.html

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

相关文章

小程序day01

简介: 小程序项目的基本结构 页面的组成部分 一个页面对应一个文件夹&#xff0c;所有有关的内容都放在一起。 JSON配置文件 2.app.json文件 3.project.config.json文件 4.sitemap.json文件 5.页面的.json配置文件 6. 新建小程序页面 7.修改项目首页 小程序代码构成 小程序的宿…

java 数据结构 ArrayList源码底层 LinkedList 底层源码 迭代器底层

文章目录 数据结构总结ArrayList源码底层LinkedList底层源码 迭代器底层 数据结构 对于数据结构我这边只告诉你右边框框里的 栈的特点:后进先出,先进后出,入栈也成为压栈,出栈也成为弹栈 栈就像一个弹夹 队列先进先出后进后出 队列像排队 链表查询满 但是增删快(相对于数组而…

【Unity ShaderGraph】| 快速制作一个 抖动效果

前言 【Unity ShaderGraph】| 快速制作一个 抖动效果一、效果展示二、UV抖动效果三、应用实例 前言 本文将使用ShaderGraph制作一个抖动效果&#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xff1a;【Unity ShaderGraph】| Shader Gr…

【Midjourney入门教程4】与AI对话,写好prompt的必会方法

文章目录 1、语法2、单词3、要学习prompt 框架4、善用参数&#xff08;注意版本&#xff09;5、善用模版6、临摹7、垫图 木匠不会因为电动工具的出现而被淘汰&#xff0c;反而善用工具的木匠&#xff0c;收入更高了。 想要驾驭好Midjourney&#xff0c;可以从以下方面出发调整&…

Excel自学三部曲_Part3:Excel工作场景实战(三)

文章目录 三、基础图表、透视图表制作与分析1. 条形图&#xff08;1&#xff09;给逾期金额加上条形图&#xff08;2&#xff09;各个城市的逾期发展趋势&#xff08;迷你图&#xff09; 2. 柱状图&#xff08;1&#xff09;同时展示每个城市上中下旬的逾期金额a. 格式设置&…

粉渐变网格背景孟菲斯风格工作总结PPT模板

这是一套蓝粉渐变网格背景孟菲斯风格工作总结PPT模板&#xff0c;共27页&#xff1b; PPT模板封面&#xff0c;使用了蓝粉渐变网格、圆点、几何图案背景图片。中间填写工作总结PPT标题。界面为孟菲斯风格。 PowerPoint模板内容页&#xff0c;由25张蓝色动态幻灯片图表&#x…

安防视频监控平台EasyCVR出现目录在线,通道离线的问题该如何解决?

视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能…

全国产EtherCAT运动控制边缘控制器(六):RtBasic文件下载与连续轨迹加工的Python+Qt开发

今天&#xff0c;正运动小助手给大家分享一下全国产EtherCAT运动控制边缘控制器ZMC432H如何使用PythonQT实现连续轨迹加工。 01 功能简介 全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控&#xff0c;运动控制接口兼容EtherCAT总线和脉冲型的独立…

inquirer.js——交互式命令行用户界面

一、什么是inquirer.js 1、inquirer.js是一个开源的交互式命令行用户界面&#xff08;CLI&#xff09;库&#xff0c;可以让你轻松地与用户进行交互&#xff0c;获取用户输入并做出相应的处理。它的主要功能是提供了一系列常用的命令行交互界面组件&#xff0c;例如input、con…

C++命名空间概述

c的命名空间是为了解决重名的问题的&#xff0c;试想这样一个场景&#xff0c;我写了一个函数叫做copy()用来处理一些 can 数据的拷贝&#xff0c;但是在工程的其他位置有一个和我名字一模一样的函数是用来处理其他数据的拷贝&#xff0c;这个时候两个函数名就冲突了&#xff0…

项目资源不足,常见的5种处理方式

软件开发中&#xff0c;经常会遇到项目资源不足的情况&#xff0c;项目团队如果无法及时获得所需的人力、财力、物力等资源&#xff0c;往往会影响团队士气以及任务质量&#xff0c;造成无法按时完成任务&#xff0c;进而影响项目进度。 因此及时处理和应对资源不足的情况&…

宽带电力载波稳定吗?有丢数据吗?

随着我国智能电网建设的推进&#xff0c;宽带电力载波技术作为一种集电力传输与信息通信于一体的技术&#xff0c;得到了广泛关注。然而&#xff0c;宽带电力载波通信在实际应用过程中&#xff0c;稳定性问题及数据丢失现象成为制约其发展的瓶颈。为了进一步提高宽带电力载波的…

金融配置知识:为什么融资加杠杆股票涨跌不一样

在金融市场&#xff0c;融资加杠杆是一种常见的投资策略&#xff0c;它允许投资者使用较少的自有资金来控制更大的投资额度。然而&#xff0c;融资加杠杆的股票涨跌表现可能会与投资者预期的不同&#xff0c;这主要是由以下几个因素造成的&#xff1a; 1. 杠杆效应&#xff1a;…

使用 .NET MAUI 和 Evergine 构建 3D 应用程序和内容

作者&#xff1a;Jorge Canton Ferrero 排版&#xff1a;Alan Wang 这是来自 Plain Concepts 的 Jorge Canton 的客座博客文章。Jorge 是技术初创公司 Syderis 的联合创始人&#xff0c;12 年来一直致力于计算机图形、游戏引擎和图形工具领域的开发。目前&#xff0c;他担任 Pl…

工作事项太多如何合理安排事项?

不论您所从事的时哪个行业&#xff1f;每天总是会有很多事情需要处理&#xff0c;很多人在职场中都是忙得焦头烂额&#xff0c;甚至有时候还会因工作的交叉性出现不能按时完成重要的工作任务&#xff0c;这时候大家就需要合理安排工作事项&#xff0c;并借助一些工具督促工作任…

ChatGPT AI工具盘点:国内外推荐的AI人工智能聊天机器人工具

Chatgpt作为一个重要的人工智能对话工具&#xff0c;给人们的日常生活和工作带来了很多便利和创新&#xff0c;现在更是被应用于各种领域&#xff0c;从2015年12月Openai公司成立&#xff0c;直到2022年12年GPT-3的正式发布&#xff0c;Chatgpt才正式进入大众的视野&#xff0c…

【MySQL数据库】 三

本文主要介绍了mysql的数据增加操作和查询操作. SQL最核心的就是增删改查(CRUD) * c create * r read * u update * d delete 一.新增 1.往数据表中插入一条数据 insert into 表名 values( 值 ,值 , ….) ; 2.插入中文 3.指定列插入 4.一次插…

十分钟设置免费海外远程桌面 | 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面

目录 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面 1. 启动Amazon Lightsail实例 2. 配置远程桌面 3. 启动远程桌面 4. 使用远程桌面 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面 前言 ①本教程将向您介绍如何使用Amazon Lightsail服务的免费套餐轻松搭…

使用工具+迅雷解决ESP32配置下载问题

因为一些原因下载git上内容相当缓慢或都根本无法下载所以写了一个工具获取链接并使用迅雷下载。 工具下载&#xff1a;【免费】使用迅雷下载开发板工具资源-CSDN文库