블로그 이미지
박공명

카테고리

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

별거 아니면서도 자주 안쓰면서도 종종 써서 빡치게하는 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 박공명
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함