2016-09-21 16 views
0

POI를 사용하여 Excel 파일을 만들려고합니다. 약 70000 개의 레코드가 있습니다. 그러나 파일에 쓸 때 힙이 메모리 부족 예외입니다.Java POI 힙 메모리 부족 - 일괄 처리

일괄 적으로 데이터를 쓸 수 있는지 궁금합니다. 이 작업을 수행하기 위해 어떤 접근 방법을 사용해야합니까?

+0

어떤 유형의 Excel 파일을 시도해보십시오. xls 또는 xlsx를 만들려면 xls에 약 65000 개의 레코드 수가 제한되어 있으므로 다음 질문을 살펴보십시오. http://superuser.com/questions/366468/what-is-the-maximum-allowed-rows-in-a- microsoft-excel-xls-or-xlsx – esprittn

+0

.xlsx로 작성했습니다 –

+0

[Apache POI FAQ 읽기 opic on memory use] (http://poi.apache.org/faq.html#faq-N10165)? [조언을 따르려고 했습니까?] (http://poi.apache.org/faq.html#faq-N10165)? – Gagravarr

답변

2

Apache POI는 Microsoft Excel 2007 (xlsx) 용 XSSF.SXSSF 위에 작성된 메모리 부족 풋 프린트 SXSSF API를 제공합니다. xls 파일을 작성하는 데 사용할 수 없습니다. 원하는대로 정확하게 수행 할 수 있으며 유용합니다 힙 공간이 제한되어있는 경우. 제한된 수의 행을 메모리에 보유하고 있으며 디스크에 이미 기록 된 행은 액세스 할 수 없게됩니다. 나중에 보길 원할 수도 있습니다. documentation