티스토리 뷰

프로그래밍/JAVA

JAVA 엑셀 파일 불러오기

rlawlstjd007 2016. 11. 5. 01:04
Java 엑셀 파일 불러오기
 
 이번 시간에는 Java 에서 엑셀 파일을 불러와 데이터를 가져오는 방법에 대해서 알아보겠습니다. 우선 엑셀파일을 준비하시구요 

a.xlsx


 저는 이 파일을 사용하겠습니다. 


 우선 엑셀 파일을 불러 오기 위해서는 poi라는 라이브러리를 import 해줘야 합니다. poi란 "Microsoft Documents를 사용할 수 있게 해주는 자바 라이브러리 " 입니다. 


 우선 poi 라이브러리를 다운 받겠습니다. http://poi.apache.org/download.html 이 곳으로 갑니다.


 

 그리고 빨간색 부분을 다운로드 합니다. 그런 뒤에 압출을 푸시면 아마 poi 3.15 폴더가 만들어질 것입니다.


 



 이제 poi3.15 폴더를 프로젝트 폴더에 넣어주고 build path 에 jar 파일들을 import 해줍니다.


 아래의 빨간 부분의 jar 파일들을 모두 import 해줍니다.




 

소스코드

 기본적으로 셀의 데이터를 모두 읽어오는 소스코드는 다음과 같습니다.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class Population {
    
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
    public class Population {
        public static void main(String[] args) throws IOException {
            //파일을 읽기위해 엑셀파일을 가져온다 
            FileInputStream fis=new FileInputStream("C:\\a.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);
                    }
                }
            }
        }
    }
 
 
}
 
cs


반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA Thread 사용법  (0) 2016.11.16
JAVA Thread에 대해  (0) 2016.11.15
(JAVA0 SerialVersionUID 정의 및 사용법  (0) 2016.10.27
JAVA Java.nio 클래스란  (0) 2016.10.27
JAVA 역직렬화 : 객체 복구  (0) 2016.10.26
댓글