본문 바로가기

개발중/Java

xls 파일을 xlsx 로 바꾸기

728x90
반응형

오늘 내가 마주친 문제는 xls 확장자로 만든 파일을 xlsx 로 만들어야 한다.

 

내가 기존에 만든 프로세스들을 보아도 딱히 크게 다를 것이 없는 문제라고 생각했다.

단순히 xls 를 xlsx 로 바꾸면 되겠지 생각하고 실행 시켰더니 파일이 열리지 않았다.


블로그를 보고 내 실수를 알았고, 나는 HSSF 로 진행을 하고 있었다.


Apache POI에서 XSSF와 HSSF의 차이

 

poi은 오피스 파일들을 자바에서 제어하기 위한 라이브러리로

주로 엑셀파일을 읽거나 쓰는데 많이 사용한다.


그 중에서도 XSSFHSSF는  엑셀 파일을 다루는 라이브러리이다.


HSSF는 오피스 2003까지 쓰이는 xls 확장자를 가지는 엑셀 파일을 다루는데 쓰이며
XSSF는 그 이상 버전의 xlsx 확장자를 가진 엑셀파일을 다루는데 쓰인다.


또한 XSSF가 HSSF보다 많은 기능을 지원하며, 

대부분의 경우 HSSF로 쓰인 부분을 XSSF로 바꾸기만 해도 별 문제없이 작동한다

다루어야 할 파일이 xlsx에서 xls로 바뀔때도말이다.

 

결국은 왠만하면 액셀 문서를 다룰 때는 XSSF 를 사용해야겠다.


그래서 나는 기존 코드를 XSSF 로 모두 바꾸었다.

 

HSSFWorkbook = > XSSFWorkbook

HSSFSheet       = >  XSSFSheet


결과는 .xlsx 확장자도 잘열렸다 !


 

728x90
반응형