java POI 写入百万数据到 excel

.xls文件只支持6w+的数据写入

.xlsx文件只支持104w+数据的写入

在java中jxl工具类只能操作.xls的文件,不能操作.xlsx的文件

POI工具类能够支持.xlsx的文件操作。

  excel的数据读写都相应的简单,网上也有很多的代码,我这里要说的是怎么样写入100w+的数据到Excel中。

   在POI中,XSSFWorkbook  wb = new XSSFWorkbook ();创建的工作簿能够写入大量的数据,但很大的可能下会虚拟机内存不够而报错

在这种情况下有两种解决方案:

   1.重新分配java 虚拟机内存(我没有试验)

   2.POI中还提供了SXSSFWorkbook swb=new SXSSFWorkbook(wb,10000);代码的创建工作,第一个参数是XSSFWorkbook  wb = new XSSFWorkbook ();第二个参数是内存中处理的数据行数,当数据量超过你所设置的数量,会把多的数据保存到磁盘上。

这里提供一个简单写入excel文件的代码段:

   

public static void createWorkBook(List dataList,String filename) throws IOException { 
        System.out.println("数据数量=="+dataList.size());
    	//创建excel工作簿 
        XSSFWorkbook  wb = new XSSFWorkbook (); 
        SXSSFWorkbook swb=new SXSSFWorkbook(wb,10000);
        //swb.createSheet()
        //创建第一个sheet(页),命名为 new sheet 
        SXSSFSheet sheet = null;
        sheet = (SXSSFSheet) swb.createSheet("myData");
        //Row 行 
        //Cell 方格 
        // Row 和 Cell 都是从0开始计数的 
         
        for(int i=0;i

  

转载于:https://www.cnblogs.com/owner/p/4194276.html

你可能感兴趣的:(java,运维)