반응형
Spring 프로젝트에서 엑셀 다운로드를 구현할 때 아파치 poi를 사용하여 파일을 만들고 직접 response에 쓸 수도 있지만, ViewResolver를 구현하는 것이 여러모로 편리하다.
그런데 최근에 작성한 코드를 수정해 달라는 요청을 받고 열어보니 AbstractExcelView
를 사용한 코드를 보았다. AbstractExcelView
는 이미 @Deprecated 된 메소드로써, 다른 것을 사용하는 것이 좋다.
결론
각각 다음 것을 사용하면 된다.
- xls(hssf):
AbstractXlsView
- 엑셀 2003 (.xls) / 최대 65,535행 - xlsx(xssf):
AbstractXlsxView
- 엑셀 2007 (.xlsx) / 최대 1,048,576행 - xlsx streaming(sxssf):
AbstractXlsxStreamingView
xssf와 같은데 쓰기 전용이라 기존 엑셀 읽지 못함, 대용량 파일 생성할 때는 이걸 사용
주의사항
아파치 poi에서 hssf는 엑셀 2003 버전이며 65,535행 까지만 생성 가능하다. XSSF는 엑셀2007 버전(.xlsx)이며 약 백만 조금 넘게 생성 가능하다. 단, 많은 건을 써야할 때는 XSSF의 스트리밍 API인 SXSSF를 사용해야 OutOfMemory를 막을 수 있다. 대신 SXSSF를 사용하면 기존 파일을 읽는 것은 못한다. 쓰기 전용 API이기 때문이다.
반응형
'프로그래밍 > 이것저것 일하면서' 카테고리의 다른 글
리눅스 n라인으로 파일 자르기 (head 혹은 tail) (0) | 2020.09.11 |
---|---|
리눅스 텍스트 줄 수 세기 (wc -l 옵션) (0) | 2020.09.11 |
엑셀 최대 행 수: xls(65,535) xlsx(1,048,576) (max row num) (0) | 2020.08.06 |
맥북 아이폰 반복 연결 문제 해결 (케이블 연결시 반복 연결 시도/해제) (0) | 2020.07.30 |
input type number를 비밀번호로 표시하기 (0) | 2020.07.23 |