티스토리 뷰

개발/산출물(java)

엑셀 POI (SXSSFWorkbook vs XSSFWorkbook)

개발자와코더사이가 PM일까? 2018. 3. 11. 00:00
반응형

프로젝트를 진행하다보니 엑셀 다운로드, 업로드시에 POI를 사용하게 되었습니다. 


처음에는 옛날 소스를 아래와 같이 그대로 사용했었는데

Workbook workbook = new XSSFWorkbook();

속도 상에 문제 때문에 아래와 같이 변경 하게 되었습니다.

Workbook workbook = new SXSSFWorkbook(); 


SXSSFWorkbook 자체가 기본 값으로 100 row가 지나가게 되면 자동으로 메모리에서 디스크로 flush되게 해서 속도를 향상시켰는데

일반적으로 1 ~ 10000 row가 순차적으로 그리는 것은 상관이 없으나 10000개까지 그리고 다시 1 row로가게 되면 sheet에 접근 할 수 없다는 오류가 생깁니다. 그것을 방지하기 위해서는  Workbook workbook = new SXSSFWorkbook(10000);처럼  변경해주면 10000개 이후에 디스크를 flush하기 때문에 첫번째 row로 갈 수 있게 됩니다.

다른 분들이 보면 모르시겠지만 나중에 똑 같은 실수를 하지 않기 위해서 기록 합니다. 

행복한 하루 보내세요~~~ 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함