블로그 이미지
기대주
초초초초보 개발자.. 프로그래머도 아니고..엔지니어도 아니고.. 은땡때문에살지요^^

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'POI'에 해당되는 글 4

  1. 2007.05.29 POI 프로젝트
2007. 5. 29. 20:55 A&J프로젝트
출처 http://www.jakartaproject.com/board-read.do?boardId=jakarta&boardNo=110921728873100&command=READ&page=3&categoryId=-1

자카르타 프로젝트를 참조하여 예제를 실습하였다.

poi 2.5.1을 다운받았음.

HSSFWorkbook - 엑셀 워크북을 말합니다.
HSSFSheet - 엑셀 쉬트를 나타냅니다.
HSSFRow - 엑셀에서 특정 행입니다.
HSSFCell - 엑셀에서 특정 행에대한 특정 셀입니다.

가장 많이 쓰이는 것들이다..이것들만 제대로 하면 액셀은 잘 보여주는듯하다..

POSFS을 이용하여 엑셀 워크북을 생성합니다.

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("excelfile.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(fs);

생성된 워크북을 이용하여 시트 수만큼 돌면서 엑셀 시트 하나씩을 생성합니다.

int sheetNum = workbook.getNumberOfSheets();

for (int k = 0; k < sheetNum; k++) {
   System.out.println("Sheet Number : "+k);

   System.out.println(Sheet Name : " + workbook.getSheetName(k));
   HSSFSheet sheet = workbook.getSheetAt(k);

}

생성된 시트를 이용하여 그 행의 수만큼 돌면서 행을 하나씩 생성합니다.

int rows = sheet.getPhysicalNumberOfRows();

for (int r = 0; r < rows; r++) {
   HSSFRow row   = sheet.getRow(r);

   System.out.println("Row : "+row.getRowNum());

}

역시나 생성된 행을 이용하여 그 셀의 수만큼 돌면서 셀을 하나씩 생성합니다.

int cells = row.getPhysicalNumberOfCells();

for (short c = 0; c < cells; c++) {              <--!! short 형입니다. 255개가 max!
    HSSFCell cell  = row.getCell(c);

    int celltype = cell.getCellType();

    ...

}

셀을 생성하여 셀 타입에 따라 처리를 해주면 끝~

주의사항



만약 엑셀에서 A열에 아무런 값이 없으면 그 행은 읽지 못합니다.

행을 읽지 못하니 셀또한 처리 할 수 없습니다

posted by 기대주
prev 1 2 3 4 next