Skip to content

How to set custom HSSFColor #2

Description

@ImSejin
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) {

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions