'자바 excel'에 해당되는 글 1건

  1. 2012.01.26 [TIP] Apache POI를 이용한 MS Excel 파일 데이터 불러오기
반응형
이글은 제가 운영했던 네이버 블로그에 2009년 02월 22일에 게제되었던 글입니다.

오랜만에 Apache POI 라이브러리를 공부중이다.

 

그중 첫번째로 MS Excel에서 만든 파일의 데이타를 불러오는 것이다.

 

아래 소스는 특정 파일에서 모든 데이타를 numeric, string, fomula, null 로 구분 값을 찍는 소스이다...

 

주석은 없으니.... 알아서 살펴 보길 바라며

 

여기서 사용한 라이브러리는 "poi-bin-3.2-FINAL-20081019.tar.gz" 에 있는 jar파일 3개를 썼습니다.

 

이 소스에 대한 저작권은 저에게 있으며 저작권자의 허가 없이 상업적 용도로 사용시 저작권 침해로 소송을 걸수 있으니

 

상업적 이용에 대한 제한을 걸어둡니다. (단, 정보 습득과 자기 계발, 공부를 위한 사용이라면 누구나  소스 사용 가능 합니다.)

 

--- 소스내용 ----

import org.apache.poi.hssf.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.io.*;

 

public class TestFrame {
 public TestFrame() {
  
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println("Main start");
  TestFrame test = new TestFrame();
  test.process();
 }

 
 private void process() {
  try {
  
   POIFSFileSystem fs =
    new POIFSFileSystem(new FileInputStream("d://workbook.xls"));
    HSSFWorkbook wb = new HSSFWorkbook(fs);
    HSSFSheet sheet = wb.getSheetAt(0);
    int maxlow = sheet.getLastRowNum();
    System.out.println("max_row is " + maxlow);
  
    HSSFCell cell = null;
    HSSFRow row = null;
    
    for(int i=0; i<maxlow+1; i++) {
     row = sheet.getRow(i);
     int last_cell = 0;
     try {
      last_cell = row.getLastCellNum();
      System.out.println("last_cell is " + last_cell);
     } catch(NullPointerException nex) {
      
     }
     
     for(int j=0; j<last_cell; j++) {
      cell = row.getCell(j);
      int other = cell.getCellType();
      switch(other) {
       case HSSFCell.CELL_TYPE_BLANK : {
        System.out.print("  ");
       } break;
       
       case HSSFCell.CELL_TYPE_FORMULA : {
        System.out.print(cell.getCellFormula());
       } break;
       
       case HSSFCell.CELL_TYPE_NUMERIC : {
        System.out.print(cell.getNumericCellValue());
       } break;
       
       case HSSFCell.CELL_TYPE_STRING : {
        System.out.print(cell.getStringCellValue());
       } break;
      }
      System.out.print(" ");
     }
     System.out.println("");
    }
    
    System.out.println("5step");
    
    
  } catch(Exception ex) {
   ex.printStackTrace();
   
  }
 }


반응형
Posted by onlyTheOne
,