에러 발생 경위
- 이클립스/전자정부프레임워크를 통해 엑셀 다운로드 기능을 개발 중에 발생
- 해당 엑셀 다운로드 기능은 소스 내부에서 가지고 있는 양식 파일에 DB에서 실행한 값을 테이블 형식으로 각 시트(약 50개 이상)에 각각 넣어주고 다운로드 받을 수 있게 최종 출력까지 하게 됨
- 양식 파일 원본은 파일을 실행할 때 위와 같은 에러창이 뜨지 않고, 최종 다운로드 받을 때 에러 발생
- 파일을 출력하는 inputFileStream과 연관이 있을 수 있으나 답을 찾지 못했음
해결 과정
위 창이 떴을 때 예를 누르고 파일을 복구하여 실행하면,
위와 같은 창이 떴고, 복구 내용이 로그된 파일 링크를 누르면
이런식으로 어딘가 에러가 있다는 내용이 나온다
엑셀 파일을 구성하는 내부 xml 파일 등에 문제가 있다는 것
그렇다면
1.엑셀 파일을 뜯어서 문제가 되는 부분을 수정하거나 삭제
2.엑셀 파일을 뜯어서 문제가 되는 시트나 표를 알아낸 뒤 엑셀 파일 자체에서 수정
** 엑셀 파일을 뜯어서 문제가 되는 부분을 확인하는 방법
1.엑셀파일.xlsx에서 엑셀파일.zip으로 확장자 수정(이름 변경하듯이 수정하면 됨)
2.사용할 수 없게 될 수도 있습니다. 변경하시겠습니까? OK
3. zip 파일로 변환됨
4. zip 파일 압축해제
5. 아래와 같은 창이 하단에 뜰 것임
위 경로의 파일을 수정하거나 삭제
-> 나의 경우에는 xl/calcChain.xml 파일은 필요없어서 삭제했고, table69.xml은 엑셀 파일을 실행한 뒤 table69.xml(텍스트 파일로 열 것)을 사용하는 시트를 찾아 삭제하고 새로 생성했다
6. 모두 수정했으면 다시 압축하고 엑셀파일.zip에서 엑셀파일.xlsx로 확장자 수정
모든 엑셀 파일이 위와 같이 수정되진 않겠지만,
파일 수준 유효성 검사 및 복구가 완료되었습니다. 이 통합 문서의 일부 요소가 복구되거나 삭제되었을 수 있습니다.
제거된 레코드: /xl/calcChain.xml 부분의 수식 (계산 속성)
복구된 레코드: /xl/tables/table69.xml 부분의 표 (표)
등의 내용이 뜬다면 이런 식으로 수정하면 에러를 해결할 수 있을 것 같다
정확히는 모르겠지만 원본 파일을 만드신 분이 xml 연결을 통해서 엑셀 문서를 만들었고, 그게 추후에 꼬인 것 같다는 생각
+ 엑셀 실행 시 설정 변경 등도 해봤는데 해결이 안 되었었음
Reference
https://okky.kr/questions/295148
ㄴ 만약 소스상 문제라면 위 내용을 참고해도 좋을듯(자바)
'MORE > ERROR' 카테고리의 다른 글
Tomcat/전자정부프레임워크 | JSESSIONID가 <c:url> 태그에 붙는 경우, JSESSIONID가 URL 뒤에 달려오는 경우 에러 해결 (1) | 2023.12.07 |
---|---|
ORACLE | ORA-01422: 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다 (0) | 2023.08.29 |
이클립스/전자정부프레임워크 | An internal error occurred while showing an internal error~ 에러 해결 (0) | 2023.04.06 |
ORACLE | ORA-01400: NULL을 (*****)에 삽입할 수 없습니다 (0) | 2022.06.10 |
JavaScript/전자정부프레임워크 | 엑셀 다운로드가 안되는 경우 (0) | 2022.05.30 |