Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to set custom HSSFColor #2

Open
ImSejin opened this issue Nov 4, 2020 · 0 comments
Open

How to set custom HSSFColor #2

ImSejin opened this issue Nov 4, 2020 · 0 comments

Comments

@ImSejin
Copy link

ImSejin commented Nov 4, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant