본문 바로가기
IT/Java

Java 에서 엑셀 파일 쓰기 : POI 와 JXL(JExcel API)

by yjacket 2011. 12. 29.
자바에서 엑셀파일을 쓰는데 POI와 JXL중 어느것이 더 성능이 나을까?

테스트코드 및 결과는 다음과 같다.

테스트코드


* POI, JXL 을 java build path 에 추가해야 한다. 구글링하면 다운로드 받을 수 있는 경로가 나오므로 셋팅방법을 별도로 설명하지는 않는다.
* StopWatch 클래스는 성능측정을 위해 임의로 작성한 클래스이므로 해당 클래스가 없다면 이 코드는 컴파일 되지 않는다. 해당 클래스를 작성하던지 아니면 해당 구문을 제거하고 컴파일 할 것

결과

 

10,000 rows

65,536 rows

elapsed(sec)

filesize(KB)

elapsed(sec)

filesize(KB)

JXL

                   0.28

                  942

                  1.39

             6,113

POI(xls)

                   0.98

              2,043

               27.07

          13,371

POI(xlsx)

                   6.68

                  276

             257.20

            1,775


* 속도는 JXL 이 가장 빠르고, 파일 크기는 POI(xlsx)가 가장 작다.
* 10,000 행 테스트와 65,536 행 테스트간 처리속도시간는 처리량이 6.55배 증가한 것에 비해 JXL은 4.96배 밖에 증가 하지 않았지만, POI는 xls가 27배, xlsx가 38배나 증가했다.
* POI 는 xls 형식으로 대량의 행을 저장하기에는 속도 및 용량효율측면에서 모두 JXL에 상당히 뒤쳐지지만, xlsx 형식으로 저장시 파일 용량을 JXL로 작성된 xls의 30% 수준으로 줄일 수 있다.