我想使用自定义的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);
但我只得到了一个黑色背景。我怎么能改变它呢?
诚挚的问候,
克里斯蒂安
发布于 2021-12-20 17:52:18
那是真的。IndexedColorMap
对XSSFColor
没有用处。XSSFColor
s不是索引颜色。在Office Open XML
中,自定义颜色作为RGB直接存储在XML中。它们不会存储在任何颜色的地图中。
将XSSFColor
设置为填充前景色为单元格样式是可能的,仅使用XSSFCellStyle.setFillForegroundColor(XSSFColor颜色。不能使用CellStyle.setFillForegroundColor(short fg)
设置它。
因此,当cellFormat1.setFillForegroundColor(customtablegrey)
是一个XSSFCellStyle
时,cellFormat1
应该可以工作。
如何对Apache使用IndexedColors中未包含的颜色?演示了如何使用XSSFColor
作为单元格填充颜色的完整示例。也只是用apache poi 5.1.0
进行了测试。
ApachePOI4.1:从十六进制代码中设置单元格背景色展示了另一个完整的例子。也使用apache poi 5.1.0
进行了测试和工作。
https://stackoverflow.com/questions/70425477
复制相似问题