Java POI Excel 라이브러리 사용하기
별거 아니면서도 자주 안쓰면서도 종종 써서 빡치게하는 POI
다음부터라도 편하게 사용하기위하여 정리를 해야겟다.
Maven 기본이져 ?
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
두개를 추가함으로서 HSSF , XSSF를 사용할수 있게된다
전자는 옜날버젼 후자는 통합문서를 사용할수있게한다.
두개를 같이 사용하기 위하여 파일 확장자를 확인하여 구분하도록 한다
String fileName = File.getOriginalFilename();
logger.info("fileName : {}",fileName);
String fileExt = fileName.substring(fileName.lastIndexOf(".")+1);
logger.info("fileExt : {}",fileExt);
POIFSFileSystem fs = null;
Workbook workBook = null;
if(fileExt.equals("xls")) {
fs = new POIFSFileSystem(File.getInputStream());
workBook = new HSSFWorkbook(fs);
} else if(fileExt.equals("xlsx")) {
workBook = new XSSFWorkbook(File.getInputStream());
}
Sheet sheet = workBook.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();
for(int r=0; r<rows; r++){
Row row = sheet.getRow(r);
String storeNo = "";
String storeName = "";
if(row != null){
for(int c=0; c<2; c++){
Cell cell = row.getCell(c);
if(cell != null) {
switch(cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:
if(c == 0) {
storeNo = String.valueOf((int)cell.getNumericCellValue());
} else if(c == 1) {
storeName = String.valueOf(cell.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_STRING:
if(c == 0) {
storeNo = cell.getStringCellValue();
} else if(c == 1) {
storeName = cell.getStringCellValue();
}
break;
case HSSFCell.CELL_TYPE_BLANK:
throw new Exception();
}
}
}
logger.info("{} \t {}",storeNo,storeName);
}
}
'Dev' 카테고리의 다른 글
라즈베리파이 xbmc 에서 ftp연결시 한글이 깨질때 (0) | 2014.03.23 |
---|---|
ASCII 코드표 (0) | 2014.02.28 |
스프링 프레임워크에 Spring Security + salt 초간단 적용하기 (0) | 2014.02.13 |
스프링 프레임워크에 네이버 스마트 에디터 , 사진 퀵 업로더 적용하기 (2) | 2014.01.24 |
스프링 프레임워크에 파일업로드 적용 (0) | 2014.01.24 |