我正在尝试使用下面的XSSFColor setFillForeground()
方法设置RGB颜色值
XSSFWorkbook workbook= new XSSFWorkbook();
CellStyle style = workbook.createCellStyle();
Style.cloneStyleFrom(headerStyle);
Style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
XSSFColor color = new XSSFColor(new java.awt.Color(215,228,188)); //accepts a short value
style.setFillForegroundColor(color .getIndexed());
Sheet sheet = workbook.createSheet(sheetName);
Row headerRow = sheet.createRow(0);
Cell cell = headerRow.createCell(i);
cell.setCellStyle(style);
我传递的是短值,但无论RGB值是多少,我的前景都会变为黑色 . 我还没有发现为什么这是 - 任何想法?
1 回答
getIndexed() method in XSSFColor有Javadocs声明_271818_用于设置
CellStyle
中的颜色索引是无用的 .但是,XSSF有自己的方法来设置样式中的前景色 - 直接使用颜色 . 使用overload of setFillBackgroundColor that directly takes a XSSFColor . 它只存在于
XSSFCellStyle
中,而不是接口CellStyle
,因此首先将其转换为XSSFCellStyle
.