반응형
자바로 poi 라이브러리를 활용해서 엑셀 파일 데이터를 내려받는 간단한 프로그램을 구현하던 중에 아래와 같은 오류가 발생하였다.
Package should contain a content type part [M1.13]
이 오류는 왜 발생하고 어떻게 해결하면 되는지 정리해 보았다.
1. 오류 발생 원인
Package should contain a content type part [M1.13] 오류 발생 원인은 다양한데, 가장 자주 발생하는 경우는 아래와 같았다.
- 엑셀 형식이 맞지 않을 때
- 엑셀 파일이 손상되었을 때
- 엑셀 파일이 어떠한 이유로 암호화되어 보호되고 있을 때
- 엑셀 파일이 잠금 되어 있을 때
형식이 맞지 않을 때는 확장자가 xls인지 xlsx인지 확인을 해서 객체를 만들어줄 때 이에 맞는 객체를 사용했는지 확인해주어야 한다.
가령 xls 확장자는 HSSFWorkbook 객체를 사용해야 하고 xlsx 확장자는 XSSFWorkbook 객체를 사용해야 한다.
내가 겪은 케이스는 엑셀 파일이 암호화 프로그램에 의해 암호화되었기 때문에 발생한 오류였다.
실제 실무에서 DRM과 같은 프로그램이 PC에 설치되어 있을 수 있는데, 이러한 경우 파일을 저장할 때 자동으로 암호화하기도 한다. 내가 이런 케이스였다.
2. 해결방안
암호화가 되지 않게 파일을 예외처리해서 해결했다.
나처럼 특수한 상황이 아니면 파일이 손상됐다던지 등을 의심해 볼 필요가 있다.
반응형
'지식창고 > Java' 카테고리의 다른 글
[자바] 엑셀 파일을 Map에 담아 화면에 출력하는 방법 (0) | 2025.02.05 |
---|---|
이클립스 개발환경 그래들(Gradle) 플러그인 설치 방법 (0) | 2024.12.02 |
전자정부프레임워크 3.8 버전 설치 방법 (1) | 2024.12.01 |
[SVN] commit 시 is out of date 오류 해결방법 (0) | 2022.10.08 |
[JAVA] Error: Could not find or load main class 에러 조치 방법 (0) | 2021.10.21 |