Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)
- 点击跳转=>Unity3D特效百例
- 点击跳转=>案例项目实战源码
- 点击跳转=>游戏脚本-辅助自动化
- 点击跳转=>Android控件全解手册
- 点击跳转=>Scratch编程案例
- 点击跳转=>软考全系列
👉关于作者
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单。

👉实践过程
😜问题
在 Android 平台如何把 Excel 的 Style 样式玩出花来。
😜解决
private static Map<String, CellStyle> createStyles(Workbook wb) {Map<String, CellStyle> styles = new HashMap<String, CellStyle>(); // 创建一个样式映射表,用于存储单元格样式CellStyle style; // 定义单元格样式Font titleFont = wb.createFont(); // 创建一个字体对象,用于设置标题样式titleFont.setFontHeightInPoints((short) 18); // 设置字体高度为18点titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD); // 设置字体为粗体style = wb.createCellStyle(); // 创建一个单元格样式style.setAlignment(CellStyle.ALIGN_CENTER); // 设置对齐方式为居中style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置垂直对齐方式为居中style.setFont(titleFont); // 设置字体为标题字体styles.put("title", style); // 将标题样式放入样式映射表中Font monthFont = wb.createFont(); // 创建一个字体对象,用于设置月份样式monthFont.setFontHeightInPoints((short) 11); // 设置字体高度为11点monthFont.setColor(IndexedColors.WHITE.getIndex()); // 设置字体颜色为白色style = wb.createCellStyle(); // 创建一个单元格样式style.setAlignment(CellStyle.ALIGN_CENTER); // 设置对齐方式为居中style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置垂直对齐方式为居中style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); // 设置填充颜色为灰色的50%style.setFillPattern(CellStyle.SOLID_FOREGROUND); // 设置填充图案为实心填充style.setFont(monthFont); // 设置字体为月份字体style.setWrapText(true); // 设置文本自动换行styles.put("header", style); // 将月份样式放入样式映射表中style = wb.createCellStyle(); // 创建一个单元格样式style.setAlignment(CellStyle.ALIGN_CENTER); // 设置对齐方式为居中style.setWrapText(true); // 设置文本自动换行style.setBorderRight(CellStyle.BORDER_THIN); // 设置右边界为细线style.setRightBorderColor(IndexedColors.BLACK.getIndex()); // 设置右边界颜色为黑色style.setBorderLeft(CellStyle.BORDER_THIN); // 设置左边界为细线style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); // 设置左边界颜色为黑色style.setBorderTop(CellStyle.BORDER_THIN); // 设置上边界为细线style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 设置上边界颜色为黑色style.setBorderBottom(CellStyle.BORDER_THIN); // 设置下边界为细线style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 设置下边界颜色为黑色styles.put("cell", style); // 将单元格样式放入样式映射表中style = wb.createCellStyle(); // 创建一个单元格样式style.setAlignment(CellStyle.ALIGN_CENTER); // 设置对齐方式为居中style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置垂直对齐方式为居中style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); // 设置填充颜色为灰色的25%style.setFillPattern(CellStyle.SOLID_FOREGROUND); // 设置填充图案为实心填充style.setDataFormat(wb.createDataFormat().getFormat("0.00")); // 设置数据格式为两位小数styles.put("formula", style); // 将公式样式放入样式映射表中//*********************add by germmy@20131013 start************************//普通单元格,四周有黑线style = wb.createCellStyle(); // 创建一个样式对象style.setAlignment(CellStyle.ALIGN_RIGHT); // 设置单元格内容右对齐style.setWrapText(true); // 设置单元格内容自动换行style.setBorderRight(CellStyle.BORDER_THIN); // 设置单元格右边界为细实线style.setRightBorderColor(IndexedColors.BLACK.getIndex()); // 设置单元格右边界颜色为黑色style.setBorderLeft(CellStyle.BORDER_THIN); // 设置单元格左边界为细实线style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); // 设置单元格左边界颜色为黑色style.setBorderTop(CellStyle.BORDER_THIN); // 设置单元格上边界为细实线style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 设置单元格上边界颜色为黑色style.setBorderBottom(CellStyle.BORDER_THIN); // 设置单元格下边界为细实线style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 设置单元格下边界颜色为黑色style.setDataFormat(wb.createDataFormat().getFormat("#,##0")); // 设置单元格数据格式为千分位逗号分隔的货币格式styles.put("normalcell", style); // 将该样式对象添加到样式集合中,键为"normalcell"//横向求和公式,粗体,有淡紫色背景,四周有黑色style = wb.createCellStyle();XSSFCellStyle styleTemp = ((XSSFCellStyle) style); // 将style转换为XSSFCellStyle类型,并赋值给styleTemp变量styleTemp.setAlignment(CellStyle.ALIGN_RIGHT); // 设置styleTemp的对齐方式为右对齐styleTemp.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置styleTemp的垂直对齐方式为居中对齐Font formulaFont = wb.createFont(); // 创建一个新的字体对象formulaFontformulaFont.setFontName("宋体"); // 设置formulaFont的字体名为宋体formulaFont.setFontHeightInPoints((short) 11); // 设置formulaFont的字体大小为11磅formulaFont.setBoldweight(Font.BOLDWEIGHT_BOLD); // 设置formulaFont的粗体样式为加粗styleTemp.setFont(formulaFont); // 设置styleTemp的字体为formulaFont//控制颜色styleTemp.setFillForegroundColor(new XSSFColor(new byte[]{(byte) 255, (byte) 0, (byte) 0, (byte) 255}));
// style.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE.getIndex());styleTemp.setFillPattern(CellStyle.SOLID_FOREGROUND); // 设置填充图案为实心填充styleTemp.setBorderRight(CellStyle.BORDER_THIN); // 设置右边界为细边框,颜色为黑色styleTemp.setRightBorderColor(IndexedColors.BLACK.getIndex());styleTemp.setBorderLeft(CellStyle.BORDER_THIN); // 设置左边界为细边框,颜色为黑色styleTemp.setLeftBorderColor(IndexedColors.BLACK.getIndex());styleTemp.setBorderTop(CellStyle.BORDER_THIN); // 设置上边界为细边框,颜色为黑色styleTemp.setTopBorderColor(IndexedColors.BLACK.getIndex());styleTemp.setBorderBottom(CellStyle.BORDER_THIN); // 设置下边界为细边框,颜色为黑色styleTemp.setBottomBorderColor(IndexedColors.BLACK.getIndex());// 设置数据格式为千分位格式styleTemp.setDataFormat(wb.createDataFormat().getFormat("#,##0"));styles.put("formula_h", styleTemp);//横向的公式颜色style = wb.createCellStyle(); //纵向求和公式,四周有黑线style.setAlignment(CellStyle.ALIGN_RIGHT); // 设置单元格样式水平对齐方式为右对齐style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置单元格样式垂直对齐方式为居中对齐style.setBorderRight(CellStyle.BORDER_THIN); // 设置单元格右边界为细实线,颜色为黑色style.setRightBorderColor(IndexedColors.BLACK.getIndex());style.setBorderLeft(CellStyle.BORDER_THIN); // 设置单元格左边界为细实线,颜色为黑色style.setLeftBorderColor(IndexedColors.BLACK.getIndex());style.setBorderTop(CellStyle.BORDER_THIN); // 设置单元格顶部边界为细实线,颜色为黑色style.setTopBorderColor(IndexedColors.BLACK.getIndex());style.setBorderBottom(CellStyle.BORDER_THIN); // 设置单元格底部边界为细实线,颜色为黑色style.setBottomBorderColor(IndexedColors.BLACK.getIndex());style.setDataFormat(wb.createDataFormat().getFormat("#,##0")); // 设置单元格数据格式为千分位格式styles.put("formula_v", style);//纵向的公式颜色style = wb.createCellStyle(); // 创建一个样式对象style.setAlignment(CellStyle.ALIGN_CENTER); // 设置文本对齐方式为居中style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 设置垂直对齐方式为居中style.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex()); // 设置填充颜色为灰色(40%)style.setFillPattern(CellStyle.SOLID_FOREGROUND); // 设置填充模式为实心填充style.setDataFormat(wb.createDataFormat().getFormat("0.00")); // 设置数据格式为两位小数styles.put("formula_2", style);return styles;}
该函数通过调用Workbook的createFont()方法创建了一个字体对象,并设置了一些属性,比如字体的高度和粗细。然后,通过调用Workbook的createCellStyle()方法创建了一个单元格样式对象,并设置了一些属性,比如对齐方式和填充颜色。之后,将之前创建的字体对象设置为单元格样式的字体。最后,将单元格样式对象存储在一个Map中,以字符串作为键和单元格样式对象作为值。这个函数的目的是创建一些常用的单元格样式,并存储在一个Map中方便后续使用。
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。

相关文章:
Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)
点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…...
Sprint Boot 学习路线 5
Spring MVC Spring MVC是Spring框架的一部分,是一个Web应用程序框架。它旨在使用Model-View-Controller(MVC)设计模式轻松构建Web应用程序。 在Spring MVC中,应用程序被分为三个主要组件:Model、View和Controller。M…...
git02->gui图形化界面使用,ssh协议,idea集成GIT
gui图形化界面使用ssh协议idea集成GIT 1.gui图形化界面使用 2.ssh协议 git/github生成密钥并通过 操作分为本地电脑配置和github网站配置 第一步:本地电脑配置 右键空白处,选择Git Bash Here打开相关命令窗口 1.配置用户名和邮箱(如果已经配…...
面向对象 元类 gil log 协程 垃圾回收 描述符 property
封装、继承、多态 当谈到封装、继承和多态时,通常是在面向对象编程 (OOP) 的上下文中讨论的。 封装 (Encapsulation) 示例: class Person: def __init__(self, name, age): self.__name = name # 使用双下划线前缀将属性变为私有 self.__age = age de…...
bibitem格式 添加参考文献
这次写论文时遇到一种bibitem格式的参考文献,latex中没有bib文件 分三步走 找到这篇文章的Bib Tex的引用,然后新建bib文件,命名为下图: 然后把Bib Tex引用的内容复制到上图的文件中,新建tex文件 内容为 \document…...
Leetcode 2934. Minimum Operations to Maximize Last Elements in Arrays
Leetcode 2934. Minimum Operations to Maximize Last Elements in Arrays 1. 解题思路2. 代码实现 题目链接:2934. Minimum Operations to Maximize Last Elements in Arrays 1. 解题思路 这一题思路上其实很简单,直接分情况考察一下最后一个元素交换…...
02:2440---时钟体系
目录 一:时钟控制 1:基本概念 2:时钟结构图 3:结构图分析 4:总线 5:寄存器 A:FCLK--MPLLCON B:HCLK和PCLK--CLKDIVN C:注意 二:上电复位 1:上电复位 2:时钟选择 三:代码 一:时钟控制 1:基本概念 S3C2440A中的时钟控制逻辑可以产生所需的时钟信号,包括C…...
SOEM源码解析——ecx_siiSM(读取SII的SM信息)
0 工具准备 1.SOEM-master-1.4.0源码1 ecx_siiSM函数总览 /** Get SM data from SII SM section in slave EEPROM.从SII的SM段获取SM信息* @param[in] context = context struct 句柄* @param[in] slave = slave number 从站序号* @param[out] SM = first SM str…...
【见缝插针】射击类游戏-微信小程序项目开发流程详解
还记得小时候玩过的见缝插针游戏吗,比一比看谁插得针比较多,可有趣了,当然了,通过它可以训练自己的手速反应,以及射击水平,把握时机,得分越高就越有成就感,相信小朋友们会喜欢它的&a…...
flutter开发实战-TweenSequence实现动画序列
flutter开发实战-TweenSequence实现动画序列 一、TweenSequence TweenSequence是允许创建一个Animation由一系列补间动画来确定值,每个TweenSequenceItem都有定义在动画的持续时间的权重确定动画间隔。 TweenSequence 动画组类TweenSequenceItem 用来定义每一个动…...
Flowable 外部表单
内置表单需要在每个节点中去配置,当如果多个节点使用同一套表单属性就要配置多次比较麻烦,修改的时候也要修改多次,外部表单可以定义一次,然后其它节点都去引用同一个表单属性。 外部表单需要定义一个.form后缀的文件。 外部表单…...
[mysql]索引优化-2
目录 一、分页查询优化1.根据自增且连续的主键排序的分页查询2.根据非主键字段排序的分页查询 二、Join关联查询优化1.嵌套循环连接 Nested-Loop Join(NLJ) 算法2.基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 三、count(*)查询优化1.查询mysql自己维护的总行数2.sho…...
数据分析实战 | 泊松回归——航班数据分析
目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 一、数据及分析对象 CSV文件:o-ring-erosion-only.csv 数据集链接:https://download.csdn.net/download/m0_7…...
Fliki AI:让视频创作更简单、更高效
在当今的数字时代,视频已经成为人们获取信息和娱乐的重要方式。无论是企业宣传、教育培训还是个人创作,视频都发挥着越来越重要的作用。然而,视频制作是一项复杂的工作,需要掌握一定的技能和经验。这对于初学者或没有专业视频制作…...
webGL编程指南 第五章 MultiTexture.html
我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 :空 上一章节中我们学习texParameteri的使用,这一章节中我们两个图片进行混合 <!DOCTYPE html> <htm…...
mysql8安装和驱动jar包下载
方式一:基于docker安装 下拉镜像 docker pull mysql:8.0.21 启动镜像 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORDhadoop -d mysql:8.0.21 启动成功后,进入容器内部拷贝配置文件,到宿主主机 docker cp mysql:/etc/mysql…...
(SpringBoot)第五章:SpringBoot创建和使用
文章目录 一:Spring和SpringBoot(1)Spring已解决和未解决的问题(2)SpringBoot 二:Spring项目的创建(1)IDEA创建(2)网页端创建 三:项目目录介绍及运…...
Linux重定向
文章目录 1. 文件描述符分配规则2. 重定向接口dup2自定义shell重定向(补充) 3. 标准输出和标准错误4. 如何理解一切接文件 本章代码gitee地址:文件重定向 1. 文件描述符分配规则 文件描述符的分配规则是从0下标开始,寻址最小的没有使用的数组位置&#…...
Python之文件与文件夹操作及 pytest 测试习题
目录 1、文本文件读写基础。编写程序,在 当前目录下创建一个文本文件 test.txt,并向其中写入字符串 hello world。2、编写一个程序 demo.py,要求运行该程序后,生成 demo_new.py 文件,其中内容与demo.py 一样࿰…...
物联网:实现数据驱动决策,推动经济发展
开发物联网系统的意义主要体现在以下几个方面: 连接一切:物联网的目标是连接一切,将生活中的各种物理对象互联起来。通过物联网开发,我们可以实现各类设备的智能化,包括家居设备、交通工具、工业设备等。这将为人们提…...
VideoAgentTrek Screen Filter部署排错大全:从403 Forbidden到GPU内存不足
VideoAgentTrek Screen Filter部署排错大全:从403 Forbidden到GPU内存不足 部署AI视频处理工具,最怕的就是遇到各种报错,尤其是当你满怀期待地敲下运行命令,屏幕上却弹出一堆看不懂的红色错误信息时,那种感觉真是让人…...
AI民主化:让每个人都能开发AI应用,是理想还是泡沫?
在人工智能(AI)技术飞速发展的今天,“AI民主化”已成为热门议题——它承诺让非专业开发者也能轻松创建AI应用,打破技术壁垒。然而,作为软件测试从业者,我们不禁要问:这究竟是推动创新的理想愿景…...
hybrid实验
拓扑分接口SW1SW2SW3配置IP地址池配置DHCP自动获取IPPC1PC2PC3PC4PC5PC6END...
GD32F103待机模式实测:功耗从30mA降到3mA,手把手教你用按键唤醒(附源码)
GD32F103待机模式实战:从30mA到3mA的功耗优化全解析 引言 在嵌入式系统设计中,功耗优化一直是开发者面临的永恒课题。想象一下,你设计的智能门锁因为功耗问题需要频繁更换电池,或者野外监测设备因为电量耗尽而失去关键数据采集机会…...
一款基于 .NET 开源、跨平台应用程序自动升级组件犊
基础示例:单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤: 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...
OBS多平台直播终极指南:免费开源工具实现一键同步推流
OBS多平台直播终极指南:免费开源工具实现一键同步推流 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要在多个直播平台同时推送高质量内容?OBS Multi RTMP插件…...
SeqGPT-560M镜像免配置教程:无需pip install,直接运行Web服务
SeqGPT-560M镜像免配置教程:无需pip install,直接运行Web服务 本文介绍如何快速使用SeqGPT-560M镜像,无需任何环境配置,直接启动Web服务进行文本分类和信息抽取。 1. 什么是SeqGPT-560M? SeqGPT-560M是阿里达摩院推出…...
充电桩怎么选?内行人才知道的选购逻辑,一次讲透
很多车主装充电桩时都踩过坑:买了装不了、功率不匹配、信号不好用、安全不放心…… 其实充电桩怎么选有非常清晰的专业逻辑,只要掌握正确思路,就能一步选对,不花冤枉钱。今天从实用角度,把家用充电桩的选购要点讲透彻。…...
claw-code 源码分析:成本追踪(Cost)与 Hook——企业落地时,计量与策略注入该挂在哪一层?
涉及源码:rust/crates/runtime(usage.rs、conversation.rs、hooks.rs、config.rs、permissions)、rust/crates/api(流式 Usage)、rust/crates/plugins(插件 HookRunner)、rust/crates/claw-cli&…...
【架构实战】API接口防刷与限流策略
一、接口防刷概述 接口防刷是保护系统安全的重要手段: 常见攻击: 暴力破解密码恶意爬虫刷接口(抽奖、秒杀)CC攻击 二、限流算法 1. 计数器算法 Component public class CounterRateLimiter {public boolean tryAcquire(String key…...
