일단은 프로그래머 나부랭이

poi에 대한 정리 (자바에서 ms-office파일 읽어오는 법) 본문

Java

poi에 대한 정리 (자바에서 ms-office파일 읽어오는 법)

하필이면 도대체가 2018. 3. 8. 17:26

poi 다운받는 주소 


자바에는 자카르타 프로젝트라는 자바를 위한 오픈소스 소프트웨어를 만들고 정비하는 프로젝트가 있다.

poi는 자카르타 프로젝트중 하나인데, poi는 ms-office 파일을 순수 자바로 읽고 쓰는 기능을 제공한다. (poi에 대한 자세한 정보)

요컨데, *.doc, *.xls등의 문서를 순수 자바로 읽고 쓰는것이다.


이번글에서는 poi에 대한 정보는 위키백과로 대신하고, 사용법에 대한 정보를 정리하고자 한다.


엑셀 파일


poi로 엑셀 파일을 읽어 올때는 HSSF(*.xls), XSSF(*.xlsx) 클래스를 이용한다.

자바에서 엑셀 파일을 읽어올 때는 HSSFWorkbook이나 XSSFWorkbook로 파일을 읽어서, HSSFSheet나 XSSFSheet로 파일의 시트객체를 생성하고, 이걸 다시 행단위로 HSSFRow나 XSSFRow에 넣고, 행을 또다시(..) HSSFCell과 XSSFCell 객체에 넣어서 셀단위의 데이터를 읽어온다.


문제는 HSSF나 XSSF가 어째선지 양립이 안된다.. 자꾸 오류가 난다.

그런데, Workbook 객체로 파일을 읽어오면 이게 해결된다.

즉 이거 하나면 *.xls, *xlsx 둘다 읽어낼 수 있다.

_________________________________________________________________________

Workbook fis = WorkbookFactory.create(new File("파일"));


// 파일내의 시트를 읽어옴
Sheet sheet = fis.getSheetAt(0);

// 행

Row row=sheet.getRow(1);

// 열

Cell cell=row.getCell(0);

__________________________________________________________________________


이런식으로 쓰면 된다.


아무래도 위의 양립이 안되는 문제를 해결하기 위해 만들었나보다.


p.s : poi 3.17까지는 자바 1.6을 지원한다. poi 4버전부터는 1.8이상만 지원한다고 한다.

'Java' 카테고리의 다른 글

java에서 shell cmd 수행하는 방법  (0) 2020.11.24
centos JDK 설치 방법  (0) 2019.02.11
날짜계산 관련 (Calendar 클래스 관련 메모)  (0) 2016.10.27
File 클래스 정리  (0) 2016.07.28

Comments