728x90
반응형
오늘 내가 마주친 문제는 xls 확장자로 만든 파일을 xlsx 로 만들어야 한다.
내가 기존에 만든 프로세스들을 보아도 딱히 크게 다를 것이 없는 문제라고 생각했다.
단순히 xls 를 xlsx 로 바꾸면 되겠지 생각하고 실행 시켰더니 파일이 열리지 않았다.
이 블로그를 보고 내 실수를 알았고, 나는 HSSF 로 진행을 하고 있었다.
Apache POI에서 XSSF와 HSSF의 차이
poi은 오피스 파일들을 자바에서 제어하기 위한 라이브러리로
주로 엑셀파일을 읽거나 쓰는데 많이 사용한다.
그 중에서도 XSSF와 HSSF는 엑셀 파일을 다루는 라이브러리이다.
HSSF는 오피스 2003까지 쓰이는 xls 확장자를 가지는 엑셀 파일을 다루는데 쓰이며
XSSF는 그 이상 버전의 xlsx 확장자를 가진 엑셀파일을 다루는데 쓰인다.
또한 XSSF가 HSSF보다 많은 기능을 지원하며,
대부분의 경우 HSSF로 쓰인 부분을 XSSF로 바꾸기만 해도 별 문제없이 작동한다
다루어야 할 파일이 xlsx에서 xls로 바뀔때도말이다.
결국은 왠만하면 액셀 문서를 다룰 때는 XSSF 를 사용해야겠다.
그래서 나는 기존 코드를 XSSF 로 모두 바꾸었다.
HSSFWorkbook = > XSSFWorkbook
HSSFSheet = > XSSFSheet
결과는 .xlsx 확장자도 잘열렸다 !
728x90
반응형
'개발중 > Java' 카테고리의 다른 글
JAVA MAP => JS MAP 사용 (0) | 2021.08.24 |
---|---|
8자리 난수 구하기 (0) | 2021.08.17 |
자바 외부 라이브러리 사용할 때 참조 못할 때 해결 방안 v1 (0) | 2021.07.28 |
자바 외부 라이브러리 사용할 때 참조 못할 때 해결 방안 v1 (0) | 2021.07.27 |
현재 프로젝트의 경로 가져오기 (0) | 2021.07.14 |