Tag: Exception

0

[JAVA POI] - The maximum number of Cell Styles was exceeded.

문제 상황Apache POI를 사용하여 Excel 파일(.xlsx)을 생성하거나 수정할 때 다음과 같은 오류가 발생할 수 있습니다. java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded.You can define up to 64000 style in a .xlsx Workbook 발생 원인1. Cell Style 생성 방식의 문제Excel의 .xlsx 파일 형식에서는 최대 64,000개의 Cell Style만 생성할 수 있습니다. 이 제한은 Excel 파일 포맷의 스펙에 정의된 하드 리미트입니다. 일반적으로 이 오류는 다음과 같은 상황에서 발생합니다: // 잘못된 예시 - 반복문 안에서 매번 새로운 스타일 생성for (int i = 0; i < rows.size(); i++) { Row row = sheet.createRow(i); Cell cell = row.createCell(0); // 매 셀마다 새로운 스타일을 생성 (문제!) CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBold(true); style.setFont(font); cell.setCellStyle(style); cell.setCellValue(data.get(i));} 위 코드에서 10,000개의 행을 처리한다면, 10,000개의 동일한 스타일이 생성되어 메모리를 낭비하고 결국 64,000개 제한에 도달하게 됩니다.