본문 바로가기
프로그래밍 공부/JAVA

[JAVA] POI 엑셀 "~~의 내용에 문제가 있습니다." 오류 원인

by 꿀떡스 2021. 6. 1.
반응형

[JAVA] POI 엑셀 "~~의 내용에 문제가 있습니다." 오류 원인

 


 

java poi 라이브러리를 사용하여 엑셀 파일을 생성하였는데, 

 

다운을 받아서 열때마다 아래와 같은 오류가 발생했다.

 

'~~~~'의 내용에 문제가 있습니다. 이 통합 문서의 내용을 최대한 복구하시겠습니까?

이 통합 문서의 원본을 신뢰하는 경우 [예]를 클릭하세요.

 

 

바로 구글에 해당 오류를 검색해서 찾아보니, 

ServletOutputStream out = response.getOutputStream();
workbook.write(out);
out.close();

이런 식으로 outputstream을 꼭 close() 해주라는 내용이 나왔다.

 

하지만.. 나는 이미 close() 를 해주고 있었다.

 

한참을 삽질하다가 알아낸 원인은.... 아주 어이없고 사소한 실수였다...

원인은 셀 병합 구문에 있었다.

 

 sheet.addMergedRegion(new CellRangeAddress(0, 1, 12, 0)); //시작행번호, 마지막행번호, 시작열번호, 마지막열번호

 

위처럼 시작열번호와 마지막열번호를 반대로 쓴 것이다!

 

 

저렇게 작성해도 오류메시지만 뜰 뿐이지,

보기에 병합은 제대로 되어있기 때문에 저 부분의 문제인지 모르고 넘어간 것이다.

 

 sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 12)); //시작행번호, 마지막행번호, 시작열번호, 마지막열번호

 

위와같이 순서를 바꾸어주니 에러가 사라졌다.

 

 

 

 

당연히 Stream 때문인 줄 알고 한참을 삽질했는데..... 아주 사소한 문제에서도 저 오류가 나는 가보다.

 

댓글