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 自定义背景颜色和字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

原创POI 5.x XSSF和HSSF使用自定义字体颜色

使用 Apache POI 在条件格式中自定义背景颜色

POI之Excel自定义单元格背景颜色

DEVC++自定义背景色及代码颜色后如何恢复

如何在通知内容扩展中为我的自定义视图应用自定义字体/颜色和半透明背景?

(VB6)窗体菜单项怎么自定义背景色和字体颜色(含子菜单)