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();  // 创建一个新的字体对象formulaFont
        formulaFont.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/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity中Shader雾效的原理

文章目录 前言一、我们先看一下现实中的雾二、雾效的混合公式最终的颜色 lerp(雾效颜色&#xff0c;物体颜色&#xff0c;雾效混合因子) 三、雾效的衰减1、FOG_LINEAR&#xff08;线性雾衰减&#xff09;2、FOG_EXP(指数雾衰减1)3、FOG_EXP(指数雾衰减2) 前言 Unity中Shader雾…

ESP32 下蓝牙播放音乐

之前发过一贴&#xff1a; esp32 下蓝牙播放音乐歌词的获得_esp32 蓝牙音频-CSDN博客 说的是esp32 蓝牙接收音频流同步获得歌词的方案&#xff0c;但是有个很核心的内容由于硬件原因没有谈及&#xff0c;就是播放音乐。 这几天被抖音上各种水桶卡顿刺激了&#xff0c;经过一…

初识Linux:目录路径

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 一、基本指令&#xff1a; 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l &#xff1a; 2、ls -la&#xff1a; 3、ls [目录名] &#xff1a; 4、ls -ld [目录名]&#xff1a; 四、Linux中的文件和…

【获取cookie的真实到期时间】

获取cookie的真实到期时间 from datetime import datetime print(datetime.fromtimestamp(1734148606))

Java中的可变参数详解与最佳实践

Java中的可变参数详解与最佳实践 摘要引言可变参数的基本概念什么是可变参数&#xff1f;可变参数的语法 可变参数的使用场景与最佳实践何时使用可变参数&#xff1f; 最佳实践&#xff1a;谨慎使用可变参数灵活性 vs. 清晰性避免滥用的情况1. 类型安全问题2. 过多的参数3. 易混…

基于Docker容器DevOps应用方案

文章目录 基于docker容器DevOps应用方案环境基础配置1.所有主机永久关闭防火墙和selinux2.配置yum源3.docker的安装教程 配置主机名与IP地址解析部署gitlab.server主机1.安装gitlab2.配置gitlab3.破解管理员密码4.验证web页面 部署jenkins.server主机1.部署tomcat2.安装jenkins…

[autojs]用户界面GUI编程

用户界面: UI视图: View attr(name, value)attr(name)whidgravitylayout_gravitymarginmarginLeftmarginRightmarginTopmarginBottompaddingpaddingLeftpaddingRightpaddingToppaddingBottombgalphaforegroundminHeightminWidthvisibilityrotationtransformPivotXtransformPivo…

安卓编译命令mm和mmm的区别(mm编译当前工作目录,mmm可编译指定目录)

文章目录 1. mm示例 2. mmm示例 注意 在Android操作系统的源代码编译过程中&#xff0c; mm和 mmm是两个用于构建部分代码的常用命令。它们都属于Android build system提供的命令集合&#xff0c;但用途略有不同&#xff1a; 1. mm mm&#xff08;make module&#xff09;命…

Linux C语言进阶-D15递归函数和函数指针

递归函数 指一个函数的函数体中直接或间接调用了该函数本身 执行过程分为两个过程&#xff1a; 递推过程&#xff1a;从原问题出发&#xff0c;按递归公式递推从未知到已知&#xff0c;最终达到递推终止条件 回归阶段&#xff1a;按递归终止条件求出结果&#xff0c;逆向逐步…

无线城市WiFi解决方案【完整Word】

wx供重浩&#xff1a;创享日记 获取完整无水印高清Word版 文章目录 第1章 项目背景1.1“无线城市”的定义1.2 国内外“无线城市”发展概况1.3 典型案例分析1.4 建设无线城市的必要性1.5 无线城市能为政府带来的价值 第2章 项目需求分析2.1 无线城市的现状分析2.2 无线城市的总体…

Apache Airflow (三) :Airflow WebUI操作介绍

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

【Hadoop实战】Hadoop指标系统V2分析

Hadoop指标系统V2分析 文章目录 Hadoop指标系统V2分析架构主要组成部分根据图表解释数据流向指标过滤JMX的应用开启指标系统的组件指标项说明 使用HTTP&#xff08;JMXJsonServlet&#xff09;获取指标接口调用方式GET查询的逻辑数据的来源&#xff0c;以及更新的原理 架构 在…

chrome 的vue3的开发者devtool不起作用

问题&#xff1a; 刚刚vue2升级到vue3&#xff0c;旧的devtool识别不了vue3数据。 原因&#xff1a; devtool版本过低。升级到最新。 解决&#xff1a; 去github下载vuetool项目代码&#xff1a; GitHub - vuejs/devtools: ⚙️ Browser devtools extension for debugging…

C#基于inpoutx64读写ECRAM硬件信息

inpoutx64.dll分享路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rOt0xtt9EcsrFQtf7S91ag 提取码&#xff1a;7om1 1.InpOutManager&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi…

Linux 基本语句_10_进程

进程和程序的区别&#xff1a; 程序是一段静态的代码&#xff0c;是保存在非易失储存器上的制令和数据的有序集合&#xff0c;没有任何执行的概念&#xff1b;而进程是一个动态的概念&#xff0c;它是程序的一次执行过程&#xff0c;包括了动态创建、调度、执行和消亡的整个过程…

JVM-虚拟机的故障处理与调优案例分析

案例1&#xff1a;大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类型网站最近更换了硬件系统&#xff0c;服务器的硬件为四路志强处理器、16GB物理内存&#xff0c;操作系统为64位CentOS 5.4&#xff0c;Resin作为Web服务器。整个服务器暂时没有部署别的应用&#…

搭建关键字驱动自动化测试框架

前言 上篇文章我们已经了解到了数据驱动自动化测试框架是如何构建和驱动测试的&#xff01;那么这篇文章我们将了解关键字驱动测试又是如何驱动自动化测试完成整个测试过程的。关键字驱动框架是一种功能自动化测试框架&#xff0c;它也被称为表格驱动测试或者基于动作字的测试。…

make/makefile

目录 makefile介绍 什么是makefile 为什么要有makefile 编写makefile .PHONY 清理文件 时间问题 为什么不能总是执行 怎么判断程序是不是最新 修改单个对其他时间对其他时间的影响 make默认执行 makefile扩展 linux项目自动化构建工具-make/makefile make是一条命…

PHP网站源码 知识付费分站代理自助下单系统 自带多款模板

源码测评&#xff1a;功能很齐全&#xff0c;有可以对接的总站&#xff0c;应该是对接好就可以推广赚钱了&#xff0c;但是这种感觉能赚钱的就那么几个人&#xff0c;见仁见智吧&#xff01; 截图演示&#xff1a; 转载自 https://www.qnziyw.cn/cmsmb/qtcms/3952.html

Three.js 实现简单的PCD加载器(可从本地读取pcd文件)【附完整代码】

1 功能实现 初始会显示我们之前 SfM 做出的点云&#xff0c;包括相机位置可以点击右上角加载你本地的PCD文件可以通过选择多个文件加载多个点云并显示在同一场景中可以通过左上角的控制界面查看/调整点云的属性&#xff0c;如点大小、颜色等可以通过右上角的控制界面选择旋转 …