728x90
자바에서 Apache POI 라이브러리를 사용하여 엑셀 파일(.xls, .xlsx)의 데이터를 읽을수 있습니다.
Apache POI는 마이크로소프트 오피스 파일 포맷을 자바 언어로 다룰 수 있게 해주는 오픈 소스 라이브러리입니다.
POI 라이브러리 설치
* Maven 설정 : pom.xml에 POI 의존성 추가
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
엑셀 파일 읽기
엑셀 파일을 읽기 위해서는 FileInputStream을 사용하여 파일을 불러온 후, POI 라이브러리의 Workbook, Sheet, Row, Cell 객체를 활용하여 데이터를 읽습니다.
FileInputStream file = new FileInputStream(new File("example.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// 각 행의 모든 셀 처리
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
// 셀 데이터 처리
}
}
file.close();
엑셀 파일 처리 성능 문제
1. 문제: 대량의 데이터를 처리할 때 POI 라이브러리의 성능 문제가 발생할 수 있습니다. 특히, 많은 이미지를 포함한 엑셀 파일을 처리할 때 속도가 현저히 느려질 수 있습니다.
2. 해결책: SXSSF 방식을 사용하여 메모리 사용량을 줄이고 성능을 개선할 수 있습니다. SXSSF는 XSSF의 스트리밍 버전으로, 대용량 데이터를 처리할 때 유용합니다.
엑셀 파일 생성 및 추출의 복잡성
1. 문제: POI 라이브러리를 사용하여 엑셀 파일을 생성하거나 추출하는 과정이 복잡하고, 코드가 길어질 수 있습니다.
2. 해결책: 엑셀 파일 처리를 위한 공통 모듈을 개발하여 재사용할 수 있습니다. 또한, POI 라이브러리의 고급 기능을 활용하여 코드를 간결하게 만들 수 있습니다.
'웹개발 > java' 카테고리의 다른 글
[web]JSP 내장객체 (0) | 2024.04.17 |
---|---|
자바 Excel라이브러리 POI 스타일 지정 (0) | 2024.04.08 |
자바 DocumentBuilder객체로 xml파일 생성 (0) | 2024.04.08 |
자바 DocumentBuilder를 활용한 xml 파싱 (0) | 2024.04.07 |
이미지 파일을 자바로 바이트 처리 후 DB저장 (0) | 2024.04.07 |