Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)

news2024/12/27 13:09:32
  • 点击跳转=>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/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

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

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

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

相关文章

【媒体邀约】媒体宣传——企业成长的催化剂

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传是企业成长的催化剂&#xff0c;它在各种方面对企业的成功和发展起到了关键作用。 1. 曝光和知名度&#xff1a; 媒体宣传可以将企业和其产品或服务推向广泛的受众&#xff0c;…

SQL第四次上机实验

1.查询借阅了计算机类或者文学类图书的读者的借书证号 USE TSGL GO SELECT DISTINCT Reader.Lno FROM Book,Lend,Reader WHERE Book.ISBNLend.ISBN AND Lend.LnoReader.Lno AND Class 计算机类 OR Class 文学类2.查询同时借阅了计算机类和文学类图书的读者的借书证号 USE T…

C语言之文件操作(剩余部分)

上篇博客字数到极限了&#xff0c;给大家把内容补充在这一篇&#xff0c;我们还剩下文件读取结束的判定和文件缓冲区的内容没有介绍&#xff0c;让我们开始下面的学习吧&#xff01; 目录 1.文件读取结束的判定 1.1feof函数 1.2ferror函数 代码示例 2.文件缓冲区 2.1fflu…

制造行业怎么做?看低代码如何引领未来

随着科技的不断发展&#xff0c;制造行业正面临着巨大的变革和挑战。为了提高生产效率、降低成本并更好地适应快速变化的市场需求&#xff0c;越来越多的制造企业将目光投向了低代码开发平台。在众多低代码开发平台中&#xff0c;JNPF低代码快速开发平台凭借其卓越的性能和灵活…

“三门问题”解决方案:换不换?更换策略与贝叶斯策略?附 Java 验证代码

文章目录 前言一、什么是“三门问题”&#xff1f;二、“三门问题”解决策略详解2.1、错误策略&#xff1a;直觉策略与随机策略2.2、更换策略与事件分析计算2.3、贝叶斯策略及分析流程 三、Java 语言验证“三门问题”总结 前言 “三门问题”作为一道经典逻辑推理题&#xff0c;…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下&#xff0c;C类型以机器的本机格式和字节顺序表示&#xff0c;并在必要时通过跳过填充字节来正确对齐&#xff08;根据C编译器使用的规…

使用Vite创建Vue3项目 配置路由+路径(包教包会)

使用Vite创建Vue3项目 配置路由路径 一、创建项目&#xff1a;二、配置路由1. vue3vitets路由配置2. vue3vitejs路由配置 三、配置路径 一、创建项目&#xff1a; 创建一个文件夹在文件夹上的 地址栏 或者是 winR 打开cmd命令窗口。 输入命令 npm create vitelatest 这里我们…

飞控硬件介绍及其主要传感器特性解析

飞行控制器是无人机的关键组件之一&#xff0c;它主要由主控单片机、IMU传感器、电源和输出IO等部分构成。这些硬件和传感器的特性对于无人机的二次开发至关重要&#xff0c;其性能和质量直接关系到无人机的稳定性、飞行性能和功能扩展能力。 本文将带领新手开发者深入了解飞行…

更安全的ssh协议与Gui图形化界面使用

目录 前言&#xff1a; 一.Gui图形化界面的使用 二.ssh协议 SSH的主要作用包括&#xff1a; 相比其他网络协议&#xff0c;SSH的优势包括&#xff1a; 三.idea集成Git 前言&#xff1a; 上一篇讲解了git的命令用法以及https协议&#xff0c;但是这个协议放在做团队项目的…

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料&#xff1a; STM32F103C6T6最小系统板 STM32CUBEMX&#xff08;HAL库软件&#xff09; MDK5 串口调试助手 二、所学内容&#xff1a; 初步学习如何使用STM32的CAN通讯功能&#xff0c;在本章节主要达到板内CAN通讯的效果&#xff0c;即32发送CAN信息再在CAN接收…

初识Linux:目录路径

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

windows下QZipReader和QZipWriter解压缩zip格式文件(只针对纯文件,递归目前暂不处理)

# 运行效果 ui设计文件 采用了网格布局,组件跟随窗口最大化最小化 # .pro项目文件 这段代码是一个项目文件(.pro文件)中的内容,用于配置一个Qt项目的构建和部署规则。它包含了一些指令和设置,用于指定项目中需要编译的源代码文件、头文件、UI表单文件以及项目所依赖的Qt…

点亮一个灯

.text .global _start _start: RCC时钟使能 GPIOE RCC_MP_AHB$ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) ORR R1,R1,#(0x1<<5) STR R1,[R0]设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0] BI…

偶数科技携Skylab实时湖仓数据平台亮相2023全国中小企业数字化转型大会

2023全国中小企业数字化转型大会于10月28日至30日在安徽省合肥市举行&#xff0c;本次大会以“数实融合 赋能万企”为主题&#xff0c;由工业和信息化部、安徽省人民政府主办。会议期间&#xff0c;偶数科技等典型企业的数字化转型新技术、新产品、新应用、新模式集聚亮相&…

【微软技术栈】C#.NET 正则表达式源生成器

本文内容 已编译的正则表达式源生成在源生成的文件中何时使用 正则表达式 (regex) 是一个字符串&#xff0c;它使开发人员能够表达要搜索的模式&#xff0c;使其成为搜索文本和提取结果作为已搜索字符串子集的一种很常见的方法。 在 .NET 中&#xff0c;System.Text.RegularE…

Vuex使用一文搞懂

什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 是什么&#xff1f; | Vuex (vuejs.org) 图片来源&#xff0c;vuex官方文档 vuex安装 …

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

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

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

HackTheBox-Starting Point--Tier 2---Base

文章目录 一 题目二 过程记录2.1 打点2.2 权限获取2.3 横向移动2.4 权限提升 一 题目 Tags Web、Vulnerability Assessment、Custom Applications、Source Code Analysis、Authentication、Apache、PHP、Reconnaissance、Web Site Structure Discovery、SUDO Exploitation、Au…

GPIO实验:ARM汇编代码实现LED灯亮灭控制

GPIO实验&#xff1a;ARM汇编代码实现LED灯亮灭控制 一、 汇编工程模板Makefile分析 NAMEasm-led #指定编译的源文件名字 CROSS_COMPILE arm-linux-gnueabihf- #指定交叉编译工具链前缀CC $(CROSS_COMPILE)gcc #指定gcc名字LD $(CROSS_COMPILE)ld #指定链接器名字…