POI HSSF 自定义背景颜色和字体颜色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI HSSF 自定义背景颜色和字体颜色相关的知识,希望对你有一定的参考价值。
参考技术A //自定义背景颜色HSSFPalette palette = ((HSSFWorkbook) wb).getCustomPalette();
palette.setColorAtIndex(HSSFColor.LIME.index, (byte)234, (byte)234, (byte)234);
titleStyle.setFillForegroundColor(HSSFColor.LIME.index);
titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//自定义字体颜色
palette.setColorAtIndex(HSSFColor.SEA_GREEN.index, (byte)23, (byte)110, (byte)169);
Font titleFont = wb.createFont();
titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
titleFont.setFontHeight((short)200);
titleFont.setColor(HSSFColor.SEA_GREEN.index);
titleStyle.setFont(titleFont);
titleStyle.setFillBackgroundColor(Font.COLOR_NORMAL);
使用 Apache POI 在条件格式中自定义背景颜色
【中文标题】使用 Apache POI 在条件格式中自定义背景颜色【英文标题】:Custom background color in conditional formatting using Apache POI 【发布时间】:2014-12-28 14:47:07 【问题描述】:我有一个 XSSF 工作簿,我想在定义了条件格式的一组单元格中定义自定义背景颜色,但问题是 PatternFormatting
类中的 setFillBackgroundColor()
方法只接受类型短参数,而不是像这样的XSSFColor
:
PatternFormatting fill = rule1.createPatternFormatting();
fill.setFillBackgroundColor(new XSSFColor(new java.awt.Color(80, 80, 100));
fill.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
我可以fill.setFillBackgroundColor(IndexedColors.RED.index)
,但我想定义一个自定义颜色。我该怎么做?。
【问题讨论】:
fill.setFillBackgroundColor(new XSSFColor(new java.awt.Color(80, 80, 100));
是自定义 R=80 G=80 B=100 对吗?使用它有什么问题?
@Angga 问题是PatternFormatting
类中的setFillBackgroundColor()
方法只接受类型短参数,而不接受XSSFColor
。
相关:***.com/questions/10912578/…
【参考方案1】:
对于仍在阅读本文并遇到请求者在 2014 年描述的问题的任何人,您可能使用的是 3.13 之前的 Apache POI 版本。尝试升级到至少 3.13,您确实应该能够做到:
fill.setFillBackgroundColor(new XSSFColor(new java.awt.Color(80, 80, 100))
(另见此处:https://bz.apache.org/bugzilla/show_bug.cgi?id=56774)
【讨论】:
以上是关于POI HSSF 自定义背景颜色和字体颜色的主要内容,如果未能解决你的问题,请参考以下文章