반응형
지난번에 JXL 라이브러리를 이용하여 엑셀파일 생성법에 대해서 포스팅했다. [포스팅 보기]
오늘은 반대로 해당 라이브러리를 이용하여 엑셀 파일을 읽어보자.
사용할 엑셀파일은 JXL 라이브러리 특성상 엑셀97 ~ 2003 포맷(xls)으로 저장이 되어있어야 한다.
요새 지원하는 xlsx 등은 읽을수 없다.
상위버전의 엑셀로 작성된 문서라면 엑셀에서 다른이름 저장을 선택하여 통합문서로 재 저장해야 한다.
매번 엑셀을 변환해야 하지만 어쩌겠는가. 목마른 사람이 우물을 판다고 해당 라이브러리 개발자에게 감사해하며 사용하자.
1. 샘플 엑셀파일(test.xls)
import java.io.File; import java.io.IOException; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; public class ReadExcel { public static void main(String[] args) { // 파일 객체 생성 - 엑셀파일 경로 File file = new File("C:\\test.xls"); try { // 엑셀파일 워크북 객체 생성 Workbook workbook = Workbook.getWorkbook(file) ; // 시트 지정 Sheet sheet = workbook.getSheet(0); // 행 길이 int endIdx = sheet.getColumn(1).length-1; for(int i=0; i <= endIdx; i++){ // 첫번째 열(A) String name = sheet.getCell(0, i).getContents() ; // 두번째 열(B) String age = sheet.getCell(1, i).getContents() ; System.out.println(name + " : " + age) ; } } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
3. 실행 결과 값
읽어야 할 열이 많을경우 sheet.getCell(1, i).getContents() 해당 숫자부분을 순차적으로 늘리면 된다.
또 첫번째 시트가 아닌 다른 시트를 읽어야 할때는 workbook.getSheet(0) 에서 0대신 요청하는 시트의 번호를 넣으면 된다.
'Language > Java / JSP' 카테고리의 다른 글
[Java] 문자열 나누기(분리하기) - StringTokenizer, split (0) | 2014.08.25 |
---|---|
[Java] 텍스트 파일 생성 (FileWriter, BufferedWriter) (6) | 2014.08.24 |
[JAVA] File renameTo() 에러에 관하여 (0) | 2014.08.22 |
[JSP] 파일 다운로드 구현하기 (13) | 2014.08.21 |
[JSP] cos.jar를 이용한 파일 업로드 구현하기 (16) | 2014.08.20 |