POI 海量数据/大数据文件生成SXSSFWorkbook使用简介

来源:互联网 发布:lol美服账号购买 淘宝 编辑:程序博客网 时间:2024/06/13 06:25

SXSSFWorkbook是用来生成海量excel数据文件,主要原理是借助临时存储空间生成excel。

POI要求3.8以上,生成的文件格式要求是07及以上版本,因为excel07级以上版本的行数1048576,量很大,而03版本的只有6万多。

注意,实际过程中,数据承载根据数量量判断,一般用到SXSSFWorkbook,就别用list承载数据,你懂/作死。。。

当然,如果超过了1048576这个行数,是否出问题,,,没研究过(=。

代码如下:


package excel;//import junit.framework.Assert;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 SXSSFDemo {    public static void main(String[] args) throws Throwable {                SXSSFWorkbook wb = new SXSSFWorkbook(100); // 在内存当中保持 100 行 , 超过的数据放到硬盘中        Sheet sh = wb.createSheet();        for(int rownum = 0; rownum < 10000; 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("/Users/tootwo2/Documents/sxssf.xlsx");        wb.write(out);        out.close();        // dispose of temporary files backing this workbook on disk        wb.dispose();    }}


参考网址:http://www.cnblogs.com/tootwo2/p/6683143.html

原创粉丝点击