반응형
엑셀 다운로드를 구현하고 스타일을 적용하는 과정에서 아래 오류를 발견했다.
The maximum column width for an individual cell is 255 characters.
원인은, Poi 라이브러리에서 지원하는 최대 가로 길이가 255 * 256이기 때문. 255는 글자수를 의미하고 256은 엑셀파일에서 보는 기준 한글자(영어 기준)의 가로 길이다. 즉, 영문 255자까지가 허용되는 컬럼 가로 길이다.
해결은 단순히 최대값의 제한을 걸면 되므로 Math.min(A,B) 로 제한을 걸면 된다.
참고로 한글은 256이 아니라 512로 하면 적절하게 맞는다. 즉 한글은 122자 정도 길이가 한계라고 보면 된다.
이렇게 가로 길이를 제한하고 난 뒤에는 CellStyle을 이용해 wrapText = true 옵션을 활성화 하면 좋다. 자동 줄바꿈을 해준다.
자동줄바꿈만 되고 높이가 한줄 높이 그대로인 경우가 있다.
그런 경우 아래처럼 옵션을 주면 자동으로 맞춰준다.
currentRow.setHeight((short)-1)
SXSSFWorkbook 기준으로 잘 동작하는 것을 확인하였다.
반응형
댓글