我想用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 分配给主函数中的各个单元格 由于某种原因,细胞被染成黑色,我似乎找不到任何问题 谁能帮助我
最佳答案
讽刺的是,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);
并且不要忘记为单元格指定样式。如果您只是从三个不同的单元格中获取初始样式,它可能会指向工作簿中的相同样式对象。如果您想要新样式,则必须在工作簿中创建它并将其分配给单元格(请参阅我的示例)。
关于java,无法使用正确的颜色为单元格着色,apache poi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22061790/