import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
public class POITest {
public static void main(String[] args) throws Throwable {
Workbook wb = new SXSSFWorkbook(100); // keep 100 rows in memory, exceeding rows will be flushed to disk
Sheet sh = wb.createSheet();
for(int rownum = 0; rownum < 1000000; rownum++) {
Row row = sh.createRow(rownum);
for(int cellnum = 0; cellnum < 10; cellnum++) {
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address);
}
}
FileOutputStream out = new FileOutputStream("/temp/sxssf.xlsx");
wb.write(out);
out.close();
}
}
주석에 있는 설명대로 100 row가 넘어가면 자동으로 메모리에서 디스크로 flush된다.
테스트에 쓰인 버젼은 3.8 beta5다.
'기타' 카테고리의 다른 글
앱 개발 시 유념해야할 내용들.. (0) | 2012.11.05 |
---|---|
Eclipse Plug-in 삭제 방법 (0) | 2012.03.12 |
이클립스 한글 폰트 문제 (0) | 2012.02.15 |
SVN 파일 삭제 (0) | 2012.02.13 |
워드, 엑셀, 파워포인트 두 개 또는 여러 개 동시에 멀티 실행해서 듀얼 모니터 등으로 분리해서 보는 방법 (MS Office 2007기준) (0) | 2012.02.03 |