메뉴 건너뛰기

조회 수 2316 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
자바의 JXL 라이브러리를 활용하여 엑셀파일을 읽은 후 ArrayList 리턴받기

※ 참고사항
공개된 JXL 라이브러리는 자바 1.4 버전에 컴파일된 듯 하다. 버전이 맞지않아 오류가 발생할 수 있으니 주의하자.
서버에 업로드된 엑셀파일을 열어 HashMap 에 Cell을 담고 List 에 Row를 담아 리턴하는 소스이다.

 ExcelUtils.java


/**
 * @class ExcelUtils
 * @brief 
 *
 * registered date 20100908
 * programmed by Seok Kyun. Choi. 최석균
 * http://syaku.tistory.com
 */

package com.syaku.util;

import java.util.*;
import java.io.File;
import jxl.*;

import org.apache.log4j.Logger;

public class ExcelUtils {
  private static Logger log = Logger.getLogger(ExcelUtils.class);

  public List xlsForList(String file_path) throws Exception {
    File file = new File(file_path);

    if (!file.exists()) {
      throw new Exception("파일이 존재하지 않습니다.");
    }

    Workbook workbook = null;
    Sheet sheet = null;
    List list = new ArrayList();

    try {

      workbook = Workbook.getWorkbook(file);
      sheet = workbook.getSheet(0);

      int row = sheet.getRows();
      int col = sheet.getColumns();

      if(row <= 0) { throw new Exception("내용이 없습니다."); }

      for(int i = 0; i < row ; i++) {
        HashMap hm = new HashMap();
        for(int o = 0; o < col ; o++) {
          hm.put("COL"+o,sheet.getCell(o,i).getContents());
        }

        list.add(i,hm);
      }

    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    } finally {
      try {
        if(workbook != null) { workbook.close(); }
      } catch (Exception e) { }
    }

    return list;
  }

}



 예제소스

String excel_file = "/excel.jsp"; // 절대경로의 엑셀파일

ExcelUtils excel = new ExcelUtils();
List result = excel.xlsForList(excel_file);

for (int i =1; i < result.size(); i++) {
  HashMap hm2 = (HashMap)result.get(i);

  out.println(hm2.get("COL0"));
  out.println(hm2.get("COL1"));
  out.println(hm2.get("COL2"));
  out.println(hm2.get("COL3"));
  out.println(hm2.get("COL4"));
  out.println(hm2.get("COL5"));
  out.println(hm2.get("COL6"));
  out.println(hm2.get("COL7"));
  out.println(hm2.get("COL8"));
  out.println(hm2.get("COL9"));
  out.println(hm2.get("COL10"));
  out.println(hm2.get("COL11"));
  out.println(hm2.get("COL12"));
}




List of Articles
번호 제목 날짜 조회 수
87 숫자형식 포멧 방법 2018.02.09 303
86 jquery 스크롤(scroll) 따라다니는 배너 레이어 / 위로 버튼 / 화면 상단으로 이동 / scroll layer 이벤트 file 2017.07.04 1604
85 BigDecimal타입의 사칙연산 2016.12.22 1806
84 다양한 문자 조합을 이용한 카운팅 구하기 2016.12.09 2688
» 자바 JXL 엑셀파일을 읽어 배열리턴 : JAVA EXCEL ArrayList 2016.12.09 2316
82 날짜 시간 포맷 제어 자바 클래스 : JAVA DateUtils Date time file 2016.12.09 2582
81 자바 다양한 형변환. 그리고 아스키 코드 String char int : JAVA 2016.12.09 2167
80 자바 XML 제어 라이브러리 XStream : JAVA 2016.12.09 2712
79 원하는 패턴의 날짜 구하기 : JAVA 2016.12.09 2050
78 iBATIS 동적으로 맵핑하기 2016.12.09 2115
77 GET 파라메타 쿼리문자열 컨트롤 : getQueryString 2016.12.09 2207
76 접근 제한자 private/ protected/ public / default file 2016.10.06 2171
75 예외처리(Exception handling)방법 file 2016.09.21 2592
74 My-SQL 을 이용한 JDBC file 2016.09.21 2348
73 static멤버와 관련된 예제 2016.09.21 2312
72 파일 읽고쓰는 암호화/복호화 2016.09.21 3374
71 JQuery 자동완성 플러그인 JSDT설치 file 2016.09.19 5186
70 System.out.println(); 이클립스에서 자동화기능 사용 file 2016.09.19 2912
69 웹브라우저(크롬) 설정하여 웹을 실행해 보자 file 2016.09.19 3158
68 한글이 깨졌다! 인코딩(encoding)을 설정하자 file 2016.09.19 2263
Board Pagination Prev 1 2 3 4 5 Next
/ 5

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved