개요
기존에 Excel 생성 및 다운로드 관련 게시글을 여럿 공유했었습니다.
https://jaimemin.tistory.com/2069
[SpringBoot] 대용량 엑셀 파일 생성 및 다운로드 삽질기
개요 작년에 이어 올해도 엑셀 파일 생성 및 다운로드 기능을 담당하게 되었습니다. https://jaimemin.tistory.com/1889 [SpringBoot] 대용량 엑셀 다운로드를 위한 SXSSFWorkbook 개요 기존에 Excel 생성 및 다운..
jaimemin.tistory.com
https://jaimemin.tistory.com/1889
[SpringBoot] 대용량 엑셀 다운로드를 위한 SXSSFWorkbook
개요 기존에 Excel 생성 및 다운로드 기능을 구현하는 코드를 공유했었습니다. https://jaimemin.tistory.com/1768 [SpringBoot] Excel 생성 및 다운로드 개요 ElasticSearch로 조회한 목록들을 엑셀로 다운로드할..
jaimemin.tistory.com
이번에는 특정 셀을 드롭다운 셀로 구현해달라는 요구사항을 받아 구현해봤습니다.
코드
기존 코드들은 모두 비슷하고 수정된 ExcelView.java만 공유하겠습니다.
ExcelView.java
* line 152 ~ 163 주목
* String[] 타입으로 넘길 경우 드롭다운 셀 생성하고 value는 String 배열의 첫 번째 인자로 설정
* 드롭다운 셀 같은 경우 monitorjbl님이 제공해주신 excel-streaming-reader로 재구성하는 방법이 없는 것 같아 XSSFWorkbook으로 파일을 열어 다운로드 해주는 방식으로 구현
-> row 개수가 많아질 경우 heap 메모리 초과 에러 발생 가능하므로 row 개수가 적은 경우 위와 같은 방식으로 적용하는 것이 중요
-> 참고 링크를 확인해보면 MS excel의 한계로 드롭다운 셀 개수가 많으면 파일 자체가 깨짐
-> 결론: row 개수가 작은 엑셀에 대해서만 해당 코드 참고
참고
POI writes corrupted .xlsx when adding large number of ValidationData in a sheet
I want to write a large .xlsx file(50K rows) using POI in JAVA. I expect each row to contain multiple drop-down cells. The code works fine when the number of rows is less than 30K but writes a corr...
stackoverflow.com
'[DEV] 기록' 카테고리의 다른 글
[SpringBoot] 컴파일 후 data.sql 오류가 발생할 경우 (2) | 2022.05.02 |
---|---|
[SpringBoot] html form에서 put/delete 메서드 호출하는 방법 (0) | 2022.04.29 |
[SpringBoot + MyBatis] TypeHandler 통해 JSON List varchar로 저장 (0) | 2022.04.13 |
[SpringBoot] 여러 파일을 .zip 파일로 압축해서 다운로드 (0) | 2022.04.12 |
[Java] File을 MultipartFile로 변환하는 함수 (0) | 2022.04.12 |