java - CellStyle 类型中的方法 setFillForegroundColor(short) 不适用于参数 (XSSFColor)
问题描述
我试图让自定义颜色在 Apache POI 中工作,但我遇到了一个小问题。到目前为止,我一直在使用IndexedColors
,但作为调色板,它非常单调。因此,使用 RGB 格式进行颜色选择将帮助我使我的电子表格看起来更好。
我一直在使用这个问题的答案,因为它从理论上解决了我的问题。但是,我面临一个非常愚蠢的问题,我真的不知道如何解决。
我收到的错误是:
CellStyle 类型中的方法 setFillForegroundColor(short) 不适用于参数 (XSSFColor)
这不应该真的发生,因为我已经看到它被用于许多其他关于 Apache POI 的示例和文档中。IDE(Eclipse)建议更改setFillForegroundColor
为setFillBackgroundColor
但这样做,只会使该想法建议反之亦然作为解决方案。我的 IDE 可以是什么小丑...
我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;
}
一些视觉喜剧
解决方案
感谢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;
}
推荐阅读
- c++ - Clang 格式化整个代码保存 git 历史
- git - 无法从远程存储库中提取
- django - 如何将mysql作为主数据库和mongodb作为辅助数据库
- android - 如何在应用程序和库模块上使用 AndroidX 运行仪器测试?
- java - 在 pom.xml 中打开 JDK 11 和 javah
- shell - 用出现次数替换特殊字符
- python-3.x - 在 Apache Airflow 中将值从一个 DAG 传递到另一个 DAG
- r - 如何在ggplot2中将科学格式刻度标签更改为缩写形式
- php - 将 Nginx 配置为 Apache 的反向代理而不渲染 PHP
- java - JEE8 中是否有任何功能可以取消 HTTP 2 请求处理