HSSFWorkbook workbook = HSSFWorkbookFactory.createWorkbook();
HSSFPalette palette = workbook.getCustomPalette();
// `HSSFColorPredefined.WHITE`의 RGB를 사용자지정 RGB로 대체한다.
palette.setColorAtIndex(HSSFColor.HSSFColorPredefined.WHITE.getIndex(),
(byte) 192, (byte) 168, (byte) 7);
// 해당 RGB를 갖는 `HSSFColorPredefined`를 찾는다.
HSSFColor hssfColor = palette.findColor((byte) 192, (byte) 168, (byte) 7);
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(hssfColor.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(cellStyle);
이런 식으로 쓰면 됩니다.
주의할 점은 HSSFColor.HSSFColorPredefined.WHITE의 RGB를 (255,255,255)에서 (192,168,7)로 대체하는 것이기에,
다른 곳에서 HSSFColor.HSSFColorPredefined.WHITE를 사용하면 원하지 않은 색상이 나올 수가 있습니다.
그래서 쓰지 않을 만한 색상을 선택하셔야 합니다.
여러 사용자지정 색상을 지원하려면 HSSFColor.HSSFColorPredefined에서 서로 다른 색상들의 RGB를 각각 대체해야 합니다.
하단 코드의 javadoc를 보고 PR를 보내려고 포크를 했는데
막상 param에 Workbook이 없네요...
Workbook를 param로 받도록 수정하셔야 할 듯합니다.
|
public void applyForeground(CellStyle cellStyle) { |
이런 식으로 쓰면 됩니다.
주의할 점은
HSSFColor.HSSFColorPredefined.WHITE의 RGB를 (255,255,255)에서 (192,168,7)로 대체하는 것이기에,다른 곳에서
HSSFColor.HSSFColorPredefined.WHITE를 사용하면 원하지 않은 색상이 나올 수가 있습니다.그래서 쓰지 않을 만한 색상을 선택하셔야 합니다.
여러 사용자지정 색상을 지원하려면
HSSFColor.HSSFColorPredefined에서 서로 다른 색상들의 RGB를 각각 대체해야 합니다.하단 코드의 javadoc를 보고 PR를 보내려고 포크를 했는데
막상 param에 Workbook이 없네요...
Workbook를 param로 받도록 수정하셔야 할 듯합니다.
excel-download/src/main/java/com/lannstark/style/color/DefaultExcelColor.java
Line 41 in 6543713