POI 3.8はビッグデータエクセルを導き出す(50万ぐらい)
3811 ワード
転載先http://blog.csdn.net/yys79/article/details/26443603
POIの前のバージョンは大きなデータ量の処理に対応していません.データが多すぎるとOOMエラーが頻繁に報告されます.JVMサイズを調整する効果もあまり良くない場合があります.3.8バージョンのPOIは新出来SXSSFWorkbookで、大きなデータ量の操作をサポートできます.SXSSFWorkbookだけサポートします.xlsxフォーマットはサポートしません.xlsフォーマットです.
3.8バージョンのPOIによるエクセルの導出操作は、一般的にHSSFWorkbook及び
SXSSFWorkbook
HSSFWorkbookはより少ないデータ量を処理するために使用されます.
SXSSFWorkbookは、大きなデータ量と大きなデータ量の導出を処理するために使用されます.
HSSFWorkbookの使用方法は前のバージョンの使用方法と一致しています.ここでは述べられていません.
SXSSFWorkbookの使用例は以下の通りです.
POIの前のバージョンは大きなデータ量の処理に対応していません.データが多すぎるとOOMエラーが頻繁に報告されます.JVMサイズを調整する効果もあまり良くない場合があります.3.8バージョンのPOIは新出来SXSSFWorkbookで、大きなデータ量の操作をサポートできます.SXSSFWorkbookだけサポートします.xlsxフォーマットはサポートしません.xlsフォーマットです.
3.8バージョンのPOIによるエクセルの導出操作は、一般的にHSSFWorkbook及び
SXSSFWorkbook
HSSFWorkbookはより少ないデータ量を処理するために使用されます.
SXSSFWorkbookは、大きなデータ量と大きなデータ量の導出を処理するために使用されます.
HSSFWorkbookの使用方法は前のバージョンの使用方法と一致しています.ここでは述べられていません.
SXSSFWorkbookの使用例は以下の通りです.
import junit.framework.Assert;
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 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 < 100000; 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();
}
xml , 3.8 。
:http://blog.sina.com.cn/s/blog_68555ee501015xk2.html
apache :http://poi.apache.org/spreadsheet/how-to.html#sxssf