본문 바로가기

JAVA

[JAVA] POI 를 이용한 Excel Import / Export


*  JAVA 구조는 다음과 같은 패키지로 이루어져 있답니다.
* (최상위 data 패키지가 빠졌네요 ^^;)




* Import 할 때의 console log 로 찍어본 내용 입니다.





*. EXCEL 의 데이터 내용 입니다
(첫번째 컬럼은 데이터 컬럼을 명시해 주기 때문에 데이터를 넣을때에 0 번째 row 는 skip 하도록 합니다~! ^-^ )




자, 그럼  Source  의 설명은....

각 exporter 패키지의 클래스는 ExcelExporter 를 상속 받고,
 또한 importer 패키지의 클래스들은 ExcelImporter 클래스를 상속 받아 쓸 것 입니다.

이 패키지에 명시한 DB JDBC 정보가 있으오니, 이에대한 정보를 변경하여 주시기 바랍니다.

1. ExcelExporter , ExcelImporter ( ex> 오라클  DB 기준 )

 protected String jdbcDriver = "oracle.jdbc.driver.OracleDriver";
 protected String jdbcUrl ="jdbc:oracle:thin:@호스트아이피:DB포트:SID";
 protected String jdbcUsername = "사용자계정아이디";
 protected String jdbcPpassword = "사용자계정 패스워드";

2-1 . Import 할 파일을 하나 만듭니다 ( ex> IMP_STTM012.java 파일 )
processRow 메소드에서 각 excel 의 값을 vo 에 담습니다.

.................. 중략 ...........................

// import 할 excel 파일명
// 파일 위치를 정의해 줍니다.
 static String fileName = "D://temp//excel_import//SSTM012.xls";

// insert 할 쿼리문과 update 할 쿼리문을 만듭니다.
String updateSql = " " ;
String insertSql = " ";

............................ 중략 ..............................

/**
  * 실질적으로 돌아가는 프로세스
  * 1. VO 를 생성하여 Excel 의 셀 내용을 타입에 따라 담는다.
  * 2. 프로세스 메소드 호출
  */
 public boolean processRow(HSSFRow row) throws Exception {
  Vo vo = new Vo();
  vo.setSystemCd(getString(row, 0));
  vo.setUnitBussCd(getString(row, 1));
  vo.setSmUnitBussCd(getString(row, 2));
  vo.setSmUnitBussId(getString(row, 3));
  vo.setSmUnitBussNm(getString(row, 4));
  vo.setUseYn(getString(row, 5));
  vo.setDispOrd(getInt(row, 6));
  process(vo);

  return true;
 }

3. Value Object Class 를 하나 만듭니다. ( Ex>Vo.java 파일 생성 )
( 각 변수명과 getter / setter 를 만듭니다 )

................................... 중략 ...................................

private String systemCd;  // 시스템코드
 private String unitBussCd;  // 단위업무코드
 private String smUnitBussCd; // 소단위업무코드
 private String pgmCd;   // 프로그램코드 (PK)

// Getter and Setter 메소드 생성

public String getSystemCd() {
  return systemCd;
 }
 
public void setSystemCd(String systemCd) {
  this.systemCd = systemCd;
 }

................................... 중략 ...................................



2-2 . Export 를 실행할 파일을 만듭니다. ( Ex > EXP_SSTM012.java  )
 
public static void main(String[] args) {
// 쿼리를 실행할 구문을 만듭니다 (String 을 써도 무관합니다.)
StringBuffer sql = new StringBuffer();

sql.append("  SQL  구문 ");

EXP_SSTM012 ex = new EXP_SSTM012();

// sql 내용과,  엑셀파일이 저장될 경로와 파일명을 넘깁니다.
 ex.export(sql.toString(), "D://temp//excel_export//EXP_SSTM012.xls");
}


나머지 DBUtil.java 파일과 ExcelExport 와 ExcelImporter 부분은 코멘트를 달아 놓았으니 참고하여 보시기 바랍니다.

JAVA 프로젝트 Encoding 타입은 UTF-8 입니다. ^^

한글 코멘트가 깨졌다면, Resource Type 을 확인하세요! ^-^