본문 바로가기

개발중/troubleshooting

java.lang.IllegalArgumentException: Attempting to write a row[2] in the range [0,3] that is already written to disk.

728x90
반응형

 

잘 돌아가던 액셀 데몬이 오늘은 에러가 나면서 동작하지 않았습니다. ( 매우당황 )

 

처음에 발생한 에러는 NullException 이었습니다.

 

row = sheet.getRow(rowLocation);

 

 

그래서 혹시 null 이면 row 생성하라는 로직을 추가했습니다.

 

    row = sheet.getRow(rowLocation);
    if (row == null) {
        row = sheet.createRow(rowLocation);
    }

 

그랬더니 생전 처음보는 에러가 났습니다.

 

java.lang.IllegalArgumentException: Attempting to write a row[2] in the range [0,3] that is already written to disk.

 

아래와 같은 방법으로 해결했습니다.

 

// 기존
SXSSFWorkbook workbook = new SXSSFWorkbook();

// 수정
SXSSFWorkbook workbook = new SXSSFWorkbook(100); // 메모리에 100행을 유지

 

오늘도 chatGPT 에게 하나 배웠습니다. 하하하

 

728x90
반응형