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