我想将单元格的颜色更改为用“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)。有什么建议吗?
最佳答案
如果将字体实例化为xssfFont,则可以使用方法
XSSFFont.setColor(XSSFColor) // Takes a color object, not a short!
请参阅此处的文档:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html#setColor-org.apache.poi.xssf.usermodel.XSSFColor-
所以试试这个(在快速测试中对我有效):
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);