2014-02-27 68 views
1

我要的颜色3个不同的列集合与3种不同的颜色,这种方法被用于添加颜色:java中,无法色彩细胞合适的颜色,Apache的POI

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到各个小区中由于某种原因,在细胞被染成黑色的主要功能 ,我似乎无法找到任何问题 谁能帮助我

回答

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); 

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

+0

谢谢bro完美地工作 – Anish6595