我在Java代码上使用findSimilarColor时遇到了一些问题。
我已经从stackoverflow中阅读了一些文章,这些文章可以帮助我了解以下代码。
HSSFCellStyle style = wb.createCellStyle();
HSSFPalette palette = wb.getCustomPalette();
// get the color which most closely matches the color you want to use
HSSFColor myColor = palette.findSimilarColor(226, 0, 116); //java don't recognize this color
// get the palette index of that color
short palIndex = myColor.getIndex();
// code to get the style for the cell goes here
style.setFillForegroundColor(palIndex);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
这样,除了我尝试使用
(226, 0, 116)
的RGB颜色之外,我没有设置任何颜色的问题。由于某些原因,当我最后打开excel文件时显示的颜色是
RGB (128, 0, 128)
。有谁知道为什么会这样吗?还是替代解决方案?
谢谢您的帮助。
最佳答案
对象调色板中是否定义了颜色(226, 0, 116)
?您正在要求调色板中定义的颜色更接近您的要求,并且似乎(128, 0, 128)
是最接近的颜色。
尝试类似的东西:
HSSFColor myColor = palette.addColor(226, 0, 116);
而不是要求类似的颜色。