[자바] 엑셀을 List로 변환
/*
메서드 부분만 정의하였습니다.
에러나는 부분은 임포트 하여 사용하세요.
*/
/**
* 특정 엑셀 파일을 List에 Object[]로 컨버트 한다.
* @param FileName 불러들일 엑셀 파일명
* @param SheetNum 불러들일 엑셀 시트 인덱스
* @return Hash(key 는 각 셀번호가 된다.) 로 묶인 Vector Data
*/
public List getExcel2List(String FileName, int SheetNum){
List lst = new ArrayList();
try{
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(FileName));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(SheetNum);
Iterator iter = sheet.rowIterator();
while(iter.hasNext()){
HSSFRow row = (HSSFRow)iter.next();
HashMap tdHash = new HashMap();
//Object[] objs = new Object[row.getPhysicalNumberOfCells()];
//System.out.println(row.getPhysicalNumberOfCells());
Iterator cellIter = row.cellIterator();
while(cellIter.hasNext()){
HSSFCell cell = (HSSFCell)cellIter.next();
Object obj = null;
int celltype = cell.getCellType();
switch(celltype){
case HSSFCell.CELL_TYPE_STRING :
obj = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC :
obj = new Double(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN :
obj = new Boolean(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR :
obj = new Byte(cell.getErrorCellValue());
break;
default :
//obj = null;
obj ="";
break;
}
tdHash.put(new Short(cell.getCellNum()), obj);
}
lst.add(tdHash);
}
System.out.println("###################");
System.out.println("lst:"+lst.toString());
System.out.println("###################");
}catch(Exception e){
e.printStackTrace();
}
return lst;
}