java

[Java] POI 오류, "허용되는 글꼴 수가 초과되어 이 파일에 글꼴 서식이 제대로 적용되지 않을 수 있습니다."

우주유령 2022. 6. 16. 16:45
728x90
반응형

POI로 엑셀을 만들어 다운로드하여 열어봤더니 

"허용되는 글꼴 수가 초과되어 이 파일에 글꼴 서식이 제대로 적용되지 않을 수 있습니다."

라는 오류가 떴다.

 

엑셀에서는 적용되는 글꼴의 개수를 최대 512개로 제한하고 있다.

https://answers.microsoft.com/ko-kr/msoffice/forum/all/%EC%97%91%EC%85%80-%ED%8C%8C%EC%9D%BC%EC%9D%B4/c9349b2f-1599-4ac3-a455-66e796546035

 

리디렉션 중

 

login.microsoftonline.com

글꼴을 512개 이상 사용했다면 이 오류가 날 수 있다.

 

Excel 2007이상에서는 경고창을 닫고 작업을 계속 할 수 있지만, Excel 2003과 Excel 2002에서는 수정 및 저장이 안된다.

 

글꼴을 1개만 사용했는데도 이 오류가 나는 경우 CellStyle을 적용할 때 매번 font객체를 생성하지 않았는지 보자.

private CellStyle getCellStyle(String div) {
    CellStyle style = null;
    HSSFFont font = this.wb.createFont();
    font.setBold(true);
    return style;
}

이렇게 매번 font를 생성할 경우 Cell개수만큼 글꼴이 있는 것으로 여겨진다.

 

font를 매번 생성하지 않도록 하면 오류가 나지 않는다.

//field에 선언
private HSSFWorkbook workbook;
private HSSFFont font;

private CellStyle getCellStyle(String div) {
	if(this.font == null){
    	this.font = this.workbook.createFont();
    }
    // ...
}

 

728x90
반응형