[DEV] 기록

[SpringBoot] Execute failed: Invalid row number (1048576) outside allowable range (0..1048575)

꾸준함. 2021. 10. 14. 21:01

개요

기존에 대용량 엑셀 다운로드를 위한 SXSSFWorkbook에 대해 공유한 적이 있습니다.

https://jaimemin.tistory.com/1889

 

[SpringBoot] 대용량 엑셀 다운로드를 위한 SXSSFWorkbook

개요 기존에 Excel 생성 및 다운로드 기능을 구현하는 코드를 공유했었습니다. https://jaimemin.tistory.com/1768 [SpringBoot] Excel 생성 및 다운로드 개요 ElasticSearch로 조회한 목록들을 엑셀로 다운로드할..

jaimemin.tistory.com

 

엑셀 칼럼을 추가해달라는 운영팀 요청에 추가한 뒤 테스트하는 과정에서 아래와 같은 에러 메시지가 발생했습니다.

Execute failed: Invalid row number (1048576) outside allowable range (0..1048575)

 

확인해본 결과, 엑셀 시트당 최대 행의 개수는 1,048,575개인데 저는 그것보다 많은 양의 데이터를 하나의 시트에 작성하려고 하다 보니 위와 같은 에러가 발생했습니다.

즉, 기능적으로 문제가 있는 것이 아니라 엑셀 프로그램의 한계 때문에 발생하는 문제였습니다.

 

해결 방법

위 에러를 해결하기 위해 저는 시트 당 1,040,000개의 데이터를 작성하는 방식으로 코드를 수정했습니다.

자세한 내용은 아래 수정된 ExcelView.java 코드를 참고해주세요.

 

ExcelView.java


 

 

반응형