Poi 라이브러리를 이용하여 엑셀파일을 읽고, 쓰는 예제이다.
메이븐을 사용하지 않는다면 아래 라이브러리를 직접 다운로드한다.
poi-3.13.jar
poi-ooxml-3.13.jar
메이븐을 사용한다면 pom.xml을 열고 아래 내용을 추가한다.
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- 엑셀파일 읽기 poi 2007년 이전버전 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> </dependency> <!-- 엑셀파일 읽기 poi 2007년 이후버전 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.13</version> </dependency> | cs |
테스트용 엑셀파일을 만들자.
참고로 확장자는 .xlsx 이다.
확장자가 .xls인 파일은 소스 내용이 좀 다르다.
여기서는 .xlsx 만 다룬다.
test.xlsx 엑셀파일 생성
test.xlsx
자바 파일 생성
PoiTestMain
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 | import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PoiTestMain { public static void main(String[] args) { try { // 엑셀파일 File file = new File("D:/test.xlsx"); // 엑셀 파일 오픈 XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file)); Cell cell = null; // 첫번재 sheet 내용 읽기 for (Row row : wb.getSheetAt(0)) { // 셋째줄부터.. if (row.getRowNum() < 2) { continue; } // 두번째 셀이 비어있으면 for문을 멈춘다. if(row.getCell(1) == null){ break; } // 콘솔 출력 System.out.println("[row] 이름 : " + row.getCell(1) + ", 나이: " + row.getCell(2) + ", 성별: " + row.getCell(3) + ", 비고: " + row.getCell(4)); // 4번째 셀 값을 변경 cell = row.createCell(4); cell.setCellValue("확인"); } // 엑셀 파일 저장 FileOutputStream fileOut = new FileOutputStream(file); wb.write(fileOut); } catch (FileNotFoundException fe) { System.out.println("FileNotFoundException >> " + fe.toString()); } catch (IOException ie) { System.out.println("IOException >> " + ie.toString()); } } } | cs |
! 위 내용을 실행 시키면 비고 값이 null 로 출력 된다.
하지만 콘솔 출력 후 4번째 셀 값을 변경하고 저장하였기 때문에 test.xlsx 파일을 열어보면 내용이 바뀐걸 확인 할 수 있다.
결과출력
[row] 이름 : 홍길동, 나이: 40.0, 성별: 남, 비고: null
[row] 이름 : 홍길순, 나이: 20.0, 성별: 여, 비고: null
실행 후 test.xlsx 파일 내용
'개발' 카테고리의 다른 글
[Ubuntu] 우분투 초기화 후 재설치 (2) | 2016.04.25 |
---|---|
[오류노트] Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' (0) | 2016.03.11 |
[Java] SAXParser를 이용한 XML 파싱 예제 (0) | 2015.12.30 |
[Javascript] 네이버 JavaScript 2.0 지도 사용 (0) | 2015.12.24 |
[Node.js] Express Framework를 이용한 간단한 라우팅 (0) | 2015.12.24 |