java - CellStyle 类型中的方法 setFillForegroundColor(short) 不适用于参数 (XSSFColor)

标签 java apache-poi apache-poi-4

我正在尝试让自定义颜色在 Apache POI 中工作,但遇到了一个小问题。到目前为止,我一直在使用 IndexedColors,但作为调色板,它相当单调。因此,使用 RGB 格式进行颜色选择将帮助我使电子表格看起来更好。

我一直在使用this问题的答案,因为它从理论上解决了我的问题。然而,我面临着一个非常愚蠢的问题,我真的不知道如何解决。

我收到的错误是:

The method setFillForegroundColor(short) in the type CellStyle is not applicable for the arguments (XSSFColor)

这实际上不应该发生,因为我已经看到它在许多其他有关 Apache POI 的示例和文档中使用。 IDE (Eclipse) 建议将 setFillForegroundColor 更改为 setFillBackgroundColor,但这样做只会使想法建议反之亦然作为解决方案。我的 IDE 真是个 clown 啊...

我为我的样式创建了一个Map,这可能会以某种方式使一切变得复杂,但我并不真正相信这就是问题所在。或者可以吗?

我能做些什么来解决这个废话?


代码摘录:

private static Map<String, CellStyle> styling(Workbook wb)
{
    Map<String, CellStyle> styles = new HashMap<>();
    CellStyle style;

    Font font1 = wb.createFont();
    font1.setBold(true);

    style = createBorderedStyle(wb);
    style.setAlignment(HorizontalAlignment.RIGHT);
    style.setFont(font1);
    style.setFillBackgroundColor(new XSSFColor(new java.awt.Color(255, 255, 0), new DefaultIndexedColorMap()));
    style.setFillPattern(FillPatternType.SOLID_FOREGROUND); 
    styles.put("column_headers", style);

    return styles;
}

一些视觉喜剧

setFillBackgroundColor

setFillForegroundColor

最佳答案

感谢Axel Richter我解决了这个问题。问题是我应该坚持使用 XSSF 库。

private static Map<String, CellStyle> styling(Workbook wb)
{
  Map<String, CellStyle> styles = new HashMap<>();
  XSSFCellStyle style;

  Font font1 = wb.createFont();
  font1.setBold(true);
  style = (XSSFCellStyle) createBorderedStyle(wb);
  style.setAlignment(HorizontalAlignment.RIGHT);
  style.setFont(font1);
  style.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128), new DefaultIndexedColorMap()));
  style.setFillPattern(FillPatternType.SOLID_FOREGROUND); 
  styles.put("cell_g", style);

  return styles; 
}

关于java - CellStyle 类型中的方法 setFillForegroundColor(short) 不适用于参数 (XSSFColor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952888/

相关文章:

java - 无法在Java中重命名和删除文件

java - 如何在 Apache POI XLS 中直接存储数据?

java - 使用 apache POI 读取 excel 2003 文件 - FileNotFound

java - 检查 hasPrevious 的元素

java - 系列 setTitle 的 apache-poi 4.0 NullPointer

java - REST API 可以有多个模型吗?

java - 从 XML 获取自定义 TextView 的自定义属性

java - C# 和 Java 中是否有 C 方法 _strtod_l 的等效项?

java - Apache poi迁移到jdk 11问题

java - Apache-poi:自动设置合并单元格的大小并使字体加粗