[Java] Exce Library

| 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

Designed by JB FACTORY