java,无法用适当的颜色为细胞着色,apache poi

时间:2014-02-27 07:25:49

标签: java apache-poi

我想用3种不同的颜色为3组不同的颜色着色,这个方法用于添加颜色:

public static void addCellStyles(CellStyle stylex, CellStyle styley, CellStyle stylez){

    stylex.setFillBackgroundColor(IndexedColors.LIGHT_GREEN.getIndex());
    stylex.setFillPattern(CellStyle.SOLID_FOREGROUND);
    stylex.setAlignment(CellStyle.ALIGN_CENTER);
    stylex.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

    styley.setFillBackgroundColor(IndexedColors.LIGHT_ORANGE.getIndex());
    styley.setFillPattern(CellStyle.SOLID_FOREGROUND);
    styley.setAlignment(CellStyle.ALIGN_CENTER);
    styley.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

    stylez.setFillBackgroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
    stylez.setFillPattern(CellStyle.SOLID_FOREGROUND);
    stylez.setAlignment(CellStyle.ALIGN_CENTER);
    stylez.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
}

我将CellStyles分配给main函数中的各个单元格 由于某种原因,细胞被染成黑色,我似乎无法找到任何问题 任何人都可以帮助我

1 个答案:

答案 0 :(得分:2)

具有讽刺意味的是,背景颜色是POI / Excel中的前景色。

试试这样:

XSSFCellStyle style1 = workbook.createCellStyle();
style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)));
style1.setFillPattern(CellStyle.SOLID_FOREGROUND);
cell.setCellStyle(style1);

或在您的情况下:

stylex.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex());
stylex.setFillPattern(CellStyle.SOLID_FOREGROUND);

并且不要忘记将样式分配给单元格。如果您只从三个不同的单元格中获取初始样式,它可能会指向工作簿中的相同样式对象。如果您需要新样式,则必须在工作簿中创建它并将其分配给单元格(请参阅我的示例)。