이전 프로젝트 진행중에 poi를 이용하여 기존 개발된 내용을 수정하는 작업이 있었다.
요구사항은 셀안의 텍스트를 ON/OFF에 따라서 글자색상을 다르게 해달라는 !!
예시 > ON/OFF/ON/OFF
확인해 보니 여러방법들이 있긴하지만, 시간이 급한터라 더 맞는 방식을 고민할 여지가 없었다.
- HSSFFont를 시용하여 색상을 선언
- HSSFRichTextString.applyFont() 를 이용하여 글자 지정 및 앞서 선언한 색상을 적용
- Font 클래스에 컬러가 없는값은 IndexedColors를 사용
// 빨간색을 지정
HSSFFont fontRed = (HSSFFont) sheet.getWorkbook().createFont();
fontRed.setColor(Font.COLOR_RED);
// 파란색을 지정
HSSFFont fontBlue = (HSSFFont) sheet.getWorkbook().createFont();
fontRed.setColor(IndexedColors.BLUE.getIndex());
//Font클래스에 RED가 없던터라 위 방식으로 처리함
// 최종 선언된 문자(이곳은 적용할 로직에 맞추어 수정가능)
String onOffStr = "ON/OFF/ON/OFF";
HSSFRichTextString onOffStrRich = new HSSFRichTextString(onOffStr);
{
String[] onOffArr = onOffStr.split("/"); //구분자로 문자열을 다시 분리
int startIndex = 0;
for(int i=0; i<onOffArr.length; i++){
if (!"ON".equals(suppliesArr[i])) {
onOffStrRich.applyFont(startIndex, startIndex + onOffArr[i].length(), fontRed);
} else {
onOffStrRich.applyFont(startIndex, startIndex + onOffArr[i].length(), fontBlue);
}
startIndex = startIndex + onOffArr[i].length() + 1;
}
}
cell.setCellValue(onOffStrRich);
cell.setCellStyle(defaultStyle);
'마니의 공부방 > Java' 카테고리의 다른 글
[myBatis] update 와 함께 insert 하기 (0) | 2021.01.03 |
---|---|
[spring] profiles 개발용/서버용 나누어 적용하기 (1) | 2020.12.31 |
[Spring] yml 암호화 - @ConfigurationPropertiesBinding 사용 (0) | 2020.12.28 |
[maven] local repository dependency 추가 (0) | 2020.12.24 |
자바 환경설정 ( 윈도우 ) (0) | 2011.04.21 |