在Apache POI 4.0中为XSSFWorkbook创建自定义颜色样式

时间:2018-09-16 18:59:44

标签: java apache-poi

要在Apache POI 3.7及更低版本中为XSSFWorkbook应用自定义颜色,可以进行以下操作:

java.awt.Color c = new java.awt.Color (1,2,3)
XSSFCellStyle xcs = xssfWorkbook.createCellStyle();
XSSFFont headerFont = xssfWorkbook.createFont();
headerFont.setColor(new XSSFColor(c));
xcs.setFont(headerFont);
cell.setCellStyle(xcs);

在版本4.0中,XSSFColor(java.awt.Color)被删除。仍然有可能 只需使用其他“黑客”即可达到相同的目的:

XSSFColor xc = new XSSFColor();
xc.setARGBHex(String.format("%02x%02x%02x",c.getRed(),c.getGreen(),c.getBlue())); 
headerFont.setColor(xc);

但是执行此操作的“正确”方法是什么?大多数XSSFColor方法都涉及IndexedColorMap,但我找不到任何示例来说明如何在XSSFWorkbook中将其用于设置自定义颜色。

2 个答案:

答案 0 :(得分:5)

byte[] rgb = {120, 100, (byte) 200};
headerFont.setColor(new XSSFColor(rgb, new DefaultIndexedColorMap()));

答案 1 :(得分:0)

    XSSFFont font = workbook.createFont();      
    byte[] rgb = {20, (byte) 230, 25};
    XSSFColor xc = new XSSFColor(rgb, null);
    font.setColor(xc);

以上是POI4的最佳方法。*。