본문 바로가기

개발중/Java

java Excel 파일 읽어오기

728x90
반응형

pom.xml 

		<!-- xssfworkbook 사용  -->
		<dependency>
		    <groupId>org.apache.poi</groupId>
		    <artifactId>poi</artifactId>
		    <version>3.13</version>
		</dependency>
		
		<dependency>
		    <groupId>org.apache.poi</groupId>
		    <artifactId>poi-ooxml</artifactId>
		    <version>3.13</version>
		</dependency>
		
		<dependency>
		    <groupId>commons-io</groupId>
		    <artifactId>commons-io</artifactId>
		    <version>2.4</version>
		</dependency>
		<dependency>
		    <groupId>commons-collections</groupId>
		    <artifactId>commons-collections</artifactId>
		    <version>3.2</version>
		</dependency>
		
		<dependency>
		    <groupId>org.apache.poi</groupId>
		    <artifactId>poi-ooxml-schemas</artifactId>
		    <version>3.13</version>
		</dependency>
		
		<dependency>
		    <groupId>org.apache.xmlbeans</groupId>
		    <artifactId>xmlbeans</artifactId>
		    <version>2.6.0</version>
		</dependency>
        

 

 

 

java Code

		try { 
			FileInputStream file = new FileInputStream("C://coding//eclipse-workspace//soo_Naver//test.xlsx"); 
			//C:\coding\eclipse-workspace\soo_Naver
			XSSFWorkbook workbook = new XSSFWorkbook(file); 
			int rowindex=0; int columnindex=0;
			
			//시트 수 (첫번째에만 존재하므로 0을 준다) 
			//만약 각 시트를 읽기위해서는 FOR문을 한번더 돌려준다
			XSSFSheet sheet = workbook.getSheetAt(0); 
			
			//행의 수 
			int rows=sheet.getPhysicalNumberOfRows(); 
			
			for(rowindex=0; 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(rowindex+"번 행 : "+columnindex+"번 열 값은: "+value);
						} 
					}
				}
		}catch(Exception e) { e.printStackTrace();
	}
728x90
반응형

'개발중 > Java' 카테고리의 다른 글

EC2 web 배포  (0) 2021.03.15
JSON / Jackson대용량 파일 읽기  (0) 2021.03.15
람다식 parallelStream, forEach  (0) 2021.02.25
람다식 filter  (0) 2021.02.25
JAVA Excel Create 내보내기 (기초)  (0) 2021.02.25