java,无法使用正确的颜色为单元格着色,apache poi

标签 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 分配给主函数中的各个单元格 由于某种原因,细胞被染成黑色,我似乎找不到任何问题 谁能帮助我

最佳答案

讽刺的是,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/

相关文章:

java - LinkedTransferQueue 应该如何使用?

Java - 使用 POI 过滤 Excel 文件的行

java - 使用 XWPFRun 一次运行粗体和平面文本,写入 word

java - 如何使用java apache poi库在Excel中设置日期字段?

java: ByteArrayOutputStream.toByteArray() 性能

java - 如果以下代码中发生错误,如何关闭 Excel 文件而不崩溃

java - J2ME中如何实现线程超时?

java - 如何使 session 数据可序列化

java - 通过 JScrollPane 异常行为重新调度 MouseEvent

java - 从 main 启动并行线程并等待结果