POI 라이브러리를 이용한 엑셀 (.xlsx) 읽는 방법에 대한 포스팅입니다.
✻ POI 버전 : 4.1.2 (다운로드 경로 : http://poi.apache.org/download.html)
✻ 외부 라이브러리 참조방법(링크) : 외부 라이브러리(.jar) 참조 방법
1. 사용 객체 설명 & 예제 파일(.xlsx)
2. 예제 소스 (JAVA)
File file = new File("C:\\Users\\donghyun\\Documents\\202. Eclipse WorkSpace\\hyplayground.data\\" + "sample.xlsx"); @SuppressWarnings("resource") XSSFWorkbook workbook = new XSSFWorkbook(file); int rowIdx = 0; int colIdx = 0; XSSFSheet sheet = workbook.getSheetAt(0); int rows = sheet.getPhysicalNumberOfRows(); // 행 전체 for(rowIdx=0; rowIdx<rows; rowIdx++) // 행 단위 Loop - Start { XSSFRow row = sheet.getRow(rowIdx); // 단일 행 (Index) if(row != null) { int cells = row.getPhysicalNumberOfCells(); // 단일 행의 셀 전체 for(colIdx=0; colIdx<=cells; colIdx++) // 셀 단위 Loop - Start { XSSFCell cell = row.getCell(colIdx); String value = ""; if(cell==null){ continue; } else{ switch (cell.getCellType()) { case FORMULA: value=cell.getCellFormula(); break; case NUMERIC: value=cell.getNumericCellValue()+""; break; case STRING: value=cell.getStringCellValue()+""; break; case BLANK: value=cell.getBooleanCellValue()+""; break; case ERROR: value=cell.getErrorCellValue()+""; break; } } System.out.println(rowIdx+"번 행 : "+colIdx+"번 열 값은: "+value); } } }
❋ 해설
: 엑셀(.xlsx)을 읽어서 각 행의 Cell단위 데이터를 출력.
1) File 객체 생성
- File "객체명" = new File("경로" + "엑셀파일명");
2) XSSFWorkbook 객체 생성
- XSSFWorkbook "객체명" = new XSSFWorkbook ("File 객체명");
3) XSSFSheet 객체 생성
- XSSFSheet "객체명" = "XSSFWorkbook 객체".getSheetAt("Sheet 위치");
4) Row 개수 만큼 Loop
- Row 총 개수 : "XSSFSheet 객체".getPhysicalNumberOfRows();
5) XSSFRow 객체 생성
- XSSFRow "객체명" = "XSSFSheet 객체".getRow("행 번호");
6) 단일 행의 Cell 개수 만큼 Loop
- Cell 총 개수 : "XSSFSheet 객체".getPhysicalNumberOfCells();
7) XSSFCell 객체 생성
- XSSFCell "객체명" = "XSSFRow 객체".getCell("셀 번호");
8) Cell의 DataType에 따라 분기처리
- 이전 자료들은 "XSSFCell.CELL_TYPE_FORMULA"처럼 열거하였으나,
포스팅에 쓰인 poi버전에서는 "FORMULA"과 같이 사용
0 댓글