我想将单元格的颜色更改为我用`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)。
任何提示?
答案 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);