Java- Apache POI XSSF - 自定义 RGB Cellbackground 不工作
Java- Apache POI XSSF - Custom RGB Cellbackground not working
我想为我的单元格背景颜色使用自定义 RGB 颜色 (38,38,38)。
为此,我使用此代码:
IndexedColorMap colorMap = wb.getStylesSource().getIndexedColors();
XSSFColor customtablegrey = new XSSFColor(new java.awt.Color(38,38,38), colorMap);
cellFormat1.setFillForegroundColor(customtablegrey.getIndex());
cellFormat1.setFillPattern(FillPatternType.SOLID_FOREGROUND);
但我得到的只是黑色背景。为什么以及如何更改它?
此致,
基督教徒
没错。 IndexedColorMap
对 XSSFColor
没有用。 XSSFColor
s 不是索引颜色。在 Office Open XML
中,自定义颜色直接作为 RGB 存储在 XML 中。它们不存储在任何类型的颜色图中。
仅使用 XSSFCellStyle.setFillForegroundColor(XSSFColor color) 即可将 XSSFColor
s 设置为单元格样式的填充前景色。不能使用 CellStyle.setFillForegroundColor(short fg)
.
设置
所以 cellFormat1.setFillForegroundColor(customtablegrey)
应该在 cellFormat1
是 XSSFCellStyle
时工作。
显示了如何使用 XSSFColor
作为单元格填充颜色的完整示例。刚刚也使用 apache poi 5.1.0
进行了测试。
显示了另一个完整示例。也使用 apache poi 5.1.0
进行了测试和工作。
我想为我的单元格背景颜色使用自定义 RGB 颜色 (38,38,38)。 为此,我使用此代码:
IndexedColorMap colorMap = wb.getStylesSource().getIndexedColors();
XSSFColor customtablegrey = new XSSFColor(new java.awt.Color(38,38,38), colorMap);
cellFormat1.setFillForegroundColor(customtablegrey.getIndex());
cellFormat1.setFillPattern(FillPatternType.SOLID_FOREGROUND);
但我得到的只是黑色背景。为什么以及如何更改它?
此致,
基督教徒
没错。 IndexedColorMap
对 XSSFColor
没有用。 XSSFColor
s 不是索引颜色。在 Office Open XML
中,自定义颜色直接作为 RGB 存储在 XML 中。它们不存储在任何类型的颜色图中。
仅使用 XSSFCellStyle.setFillForegroundColor(XSSFColor color) 即可将 XSSFColor
s 设置为单元格样式的填充前景色。不能使用 CellStyle.setFillForegroundColor(short fg)
.
所以 cellFormat1.setFillForegroundColor(customtablegrey)
应该在 cellFormat1
是 XSSFCellStyle
时工作。
XSSFColor
作为单元格填充颜色的完整示例。刚刚也使用 apache poi 5.1.0
进行了测试。
apache poi 5.1.0
进行了测试和工作。