栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

和poi自定义颜色的纠结时光

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

和poi自定义颜色的纠结时光

poi,一个简单的小工具,却暗藏杀机。掉坑里就得爬半天。

4.1.2

    org.apache.poi
    poi-ooxml
    ${poi.version}

这个版本,设置颜色,用RGB咋弄都不行,背景都是黑色的,据说是java.awt.Color是测试阶段。

当然,你可以用他默认的这些颜色,具体参看这个 poi 颜色对照表_xcc_2269861428的博客-CSDN博客_poi颜色对照表

最后,改了workbook才行。不说我的惨痛历程里。直接看可以用的版本

//1、创建workbook部分,一定要用这个版本才行哦,
public void createWorkbook() throws DecoderException {
    this.wb = new HSSFWorkbook();//创建个​excel
    this.sheet = wb.createSheet();//创建个页签
    wb.setSheetName(0, sheetName);//页签起个名字
    this.styles = createStyles(wb);
}
//2、设置背景颜色的部分
int[] rgb = new int[]{127,127,6};//定义颜色数组
HSSFWorkbook work=(HSSFWorkbook)wb;
HSSFPalette pallette = work.getCustomPalette();//获取调色板
pallette.setColorAtIndex(IndexedColors.BLUE.getIndex(),(byte)rgb[0], (byte)rgb[1], (byte)rgb[2]);//把蓝色的index处的颜色调整成我们自己定义的rgb颜色
style.setFillForegroundColor(IndexedColors.BLUE.getIndex());//把蓝色的index赋值给这个cell块的style
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);//设置填充模式为前背景色

简单解释下,第一创建一个excel,选择HSSFWorkbook,不要用XSSFWorkbook,要不后面的都跑不通,之前用了XSSFWorkbook,咋整颜色都是黑的,不论怎么从java.awt.Color变换,还是用数组直接传。

第二段是在excel原有的调色板中找了一个 “IndexedColors.BLUE.getIndex()”,把他的颜色设置成我们想设置的,然后再把这个index赋值给style。

这里不一定就用蓝色啊,只是我这里用了蓝色,具体可以根据你的业务,看哪个不常用,改改。毕竟可能会影响下一步操作的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号