[Java] Exce Library
- 📕 Programing/Java
- 2025. 1. 1.
| HSSF
- excel 97 ~ 2003 버전
| XSSF
- excel 2007 이상 버전
| SXSSF
- POI 3.8 beta3 버전부터 지원하는 성능 개선 버전
HSSF는 excel 2007이후로는 지원가능 하지 않아 기존에는 XSSF버전을 사용하고 있었다.
하지만 row수가 수만 ~ 10만건이 넘어가다 보니 OOM이 발생하게 된다.
서버 리소스를 늘려야 고민하던 때에 눈에 띄인 것이 SXSSF 이다.
- SXSSF는 지정한 row만큼 memory에 올려놓고 생성하다가 지정한 row에 도달하면 임시 XML 파일로 disk에 기록을 하고 memory를 비워주는 streaming이라 생각하면 편하다.
- XSSF는 파일생성이 끝나기 전까지 모든 row를 memory위에 올려놓는 것과는 다르게 메모리 절약에 굉장히 효과적이었다.
화이트 러시안 :: JAVA - apache poi 셀 서식 판단하여 값 읽기
| Apache POI, Tika 의존성 추가
maven일 경우 pom.xml
<!-- https://mvnrepository.com/artifact/org.apache.poi/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>
<!-- https://mvnrepository.com/artifact/org.apache.tika/tika-core -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.3.0</version>
</dependency>
gradle일 경우 build.gradle
// https://mvnrepository.com/artifact/org.apache.poi/poi
implementation group: 'org.apache.poi', name: 'poi', version: '4.1.2'
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '4.1.2'
// https://mvnrepository.com/artifact/org.apache.tika/tika-core
implementation group: 'org.apache.tika', name: 'tika-core', version: '2.3.0'
gradle일 경우 build.gradle
'📕 Programing > Java' 카테고리의 다른 글
[Java] 자바 천 단위(1000) 숫자 3자리마다 콤마(,) 표시하기 (1) | 2025.02.02 |
---|---|
[Java] 문자열이 숫자인지 검증하는 로직 (0) | 2025.01.01 |
[Java] Java 날짜 포맷 변경 방법 (0) | 2024.11.30 |
[Java] 함수형 프로그래밍과 람다식 (0) | 2023.05.02 |
컴파일(Compile) / 런타임(Runtime) / 컴파일의 흐름 (0) | 2023.05.01 |