블로그 이미지
박공명

카테고리

분류 전체보기 (99)
된장 (7)
Dev (60)
꼐..꼐임 (6)
식탐 (18)
우리 (0)
Etc (8)
개인자료 (0)
Total
Today
Yesterday

'Excel'에 해당되는 글 1건

  1. 2014.03.13 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);

}

}

Posted by 박공명
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함