반응형
[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 때문인 줄 알고 한참을 삽질했는데..... 아주 사소한 문제에서도 저 오류가 나는 가보다.
'프로그래밍 공부 > JAVA' 카테고리의 다른 글
[JAVA poi] package should contain a content type m1.13 원인 및 해결법 (0) | 2023.04.09 |
---|---|
JAVA POI setFillBackgroundColor, setFillForegroundColor 안 먹히는 문제 (0) | 2022.01.13 |
java) 최소 공배수, 최대 공약수 - 유클리드 호제법 (0) | 2019.05.14 |
java 공부) 날짜와 시간 & 형식화 (0) | 2019.05.12 |
댓글