안녕하세요 개발로짜입니다.
지난 포스팅은 데이터들을 엑셀파일로 만드는 작업을 진행했었죠?
이번에는 이전 포스팅에 만든 엑셀파일을 반대로 읽어보는 내용을 진행하도록 하겠습니다.
지난 포스팅에서 만든 엑셀파일에 존재하는 데이터 출력입니다.
2014/10/07 - [코드저장소/java] - POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기
위와 같이 엑셀파일내에 존재하는 내용들입니다.
이 생성된 파일을 콘솔에 각 셀마다 읽어보도록 하겠습니다.
이번에는 버전별 코드를 작성해보도록 하겠습니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | //파일을 읽기위해 엑셀파일을 가져온다 FileInputStream fis= new FileInputStream( "D:\\roqkffhwk.xls" ); HSSFWorkbook workbook= new HSSFWorkbook(fis); int rowindex= 0 ; int columnindex= 0 ; //시트 수 (첫번째에만 존재하므로 0을 준다) //만약 각 시트를 읽기위해서는 FOR문을 한번더 돌려준다 HSSFSheet sheet=workbook.getSheetAt( 0 ); //행의 수 int rows=sheet.getPhysicalNumberOfRows(); for (rowindex= 1 ;rowindex<rows;rowindex++){ //행을 읽는다 HSSFRow row=sheet.getRow(rowindex); if (row != null ){ //셀의 수 int cells=row.getPhysicalNumberOfCells(); for (columnindex= 0 ;columnindex<=cells;columnindex++){ //셀값을 읽는다 HSSFCell cell=row.getCell(columnindex); String value= "" ; //셀이 빈값일경우를 위한 널체크 if (cell== null ){ continue ; } else { //타입별로 내용 읽기 switch (cell.getCellType()){ case HSSFCell.CELL_TYPE_FORMULA: value=cell.getCellFormula(); break ; case HSSFCell.CELL_TYPE_NUMERIC: value=cell.getNumericCellValue()+ "" ; break ; case HSSFCell.CELL_TYPE_STRING: value=cell.getStringCellValue()+ "" ; break ; case HSSFCell.CELL_TYPE_BLANK: value=cell.getBooleanCellValue()+ "" ; break ; case HSSFCell.CELL_TYPE_ERROR: value=cell.getErrorCellValue()+ "" ; break ; } } System.out.println( "각 셀 내용 :" +value); } } } |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 파일을 읽기위해 엑셀파일을 가져온다 FileInputStream fis= new FileInputStream( "D:\\roqkffhwk2.xlsx" ); XSSFWorkbook workbook= new XSSFWorkbook(fis); int rowindex= 0 ; int columnindex= 0 ; //시트 수 (첫번째에만 존재하므로 0을 준다) //만약 각 시트를 읽기위해서는 FOR문을 한번더 돌려준다 XSSFSheet sheet=workbook.getSheetAt( 0 ); //행의 수 int rows=sheet.getPhysicalNumberOfRows(); for (rowindex= 1 ;rowindex<rows;rowindex++){ //행을읽는다 XSSFRow row=sheet.getRow(rowindex); if (row != null ){ //셀의 수 int cells=row.getPhysicalNumberOfCells(); for (columnindex= 0 ;columnindex<=cells;columnindex++){ //셀값을 읽는다 XSSFCell cell=row.getCell(columnindex); String value= "" ; //셀이 빈값일경우를 위한 널체크 if (cell== null ){ continue ; } else { //타입별로 내용 읽기 switch (cell.getCellType()){ case XSSFCell.CELL_TYPE_FORMULA: value=cell.getCellFormula(); break ; case XSSFCell.CELL_TYPE_NUMERIC: value=cell.getNumericCellValue()+ "" ; break ; case XSSFCell.CELL_TYPE_STRING: value=cell.getStringCellValue()+ "" ; break ; case XSSFCell.CELL_TYPE_BLANK: value=cell.getBooleanCellValue()+ "" ; break ; case XSSFCell.CELL_TYPE_ERROR: value=cell.getErrorCellValue()+ "" ; break ; } } System.out.println( "각 셀 내용 :" +value); } } } |
XLS 및 XLSX의 결과는 상단과 모두 동일하게 나올것입니다.
필요한 내용에따라 사용하도록 하세요 ㅎㅎ
by 개발로짜
자바 zxing를 이용하여 QR코드 생성 + 색상코드(hex,rgb,안드로이드그래픽색상) 적용법 (2) | 2014.10.16 |
---|---|
자바 다운로드 유틸을 만들어서 웹서버에 등록되있는 파일을 다운로드 하자 (5) | 2014.10.07 |
POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기 (1) | 2014.10.07 |
DTO,VO에 정의되어있는 변수명 및 갯수에 관계없이 변수명과 value값 한방에 가져오기 (0) | 2014.10.07 |
Map객체의 key값을 읽어서 value값 한번에 추출하기 (0) | 2014.10.07 |