将单元格颜色更改为特定的定义颜色

时间:2018-07-09 21:35:50

标签: java excel

我想将单元格的颜色更改为我用`java.awt.Color [r = 255,g = 255,b = 255]定义的颜色 我使用了代码:

Color sColor = new Color(200, 0, 0);
XSSFColor userColor = new XSSFColor(sColor);
try
{
    CellStyle style = wb.createCellStyle();
    Font font = wb.createFont();
    font.setColor(userColor.getIndexed());
    style.setFont(font);
    cell.setCellStyle(style);
}
catch (NumberFormatException | NullPointerException ex) 
{
    //Handle NumberFormat and NullPointer exceptions here    
}

颜色始终保持黑色。

System.out.print(userColor);的输出是:>(org.apache.poi.xssf.usermodel.XSSFColor@2e1b928)。 实际上,它会根据我在new Color (200,0,0);

中输入的值而变化

但是System.out.print(userColor.getIndexed());的输出始终为:(0)。

任何提示?

1 个答案:

答案 0 :(得分:0)

如果将Font实例化为 XSSFFont ,则可以使用方法

XSSFFont.setColor(XSSFColor) // Takes a color object, not a short!

在此处查看文档:{​​{3}}

所以尝试一下(它在快速测试中对我有用):

Color sColor = new Color(200, 0, 0);
XSSFColor userColor = new XSSFColor(sColor);

CellStyle style = wb.createCellStyle();
XSSFFont font = wb.createFont();
font.setColor(userColor);
style.setFont(font);
cell.setCellStyle(style);