楼主为什么不些在一个excel文件里?分成几个sheet不就行了。楼主的问题我没遇见过。
实在不行就用参数 -Xmx256M看看过得了不!

解决方案 »

  1.   

    我用eclipse,不知道-Xmx256M设在哪里呀。
    甭提了,我试了好多种方法了:
    9万条纪录一次取出,放到一个xls,一个sheet里--------------内存错误!
    9万条纪录一次取出,放到一个xls,多个sheet里--------------内存错误!
    9万条纪录一次取出3万,放到一个xls,多个sheet里-----------内存错误!
    9万条纪录一次取出3万,放到多个xls,多个sheet里-----------内存错误!
    9万条纪录一次取出1万,放到多个xls,都是1个sheet里--------内存错误!
    苦阿!
      

  2.   

    我的结果集是这样用的:
    查出结果集(每次1万条),做循环,将它的各个字段放到form里面,然后放到ArrayList里面。返回ArrayList。
    另一个方法取ArrayList,写Excel。
    是不是我的其他东西还有没释放掉的?比如ArrayList?
      

  3.   

    在run里面就有。有一个arguments的vm arguments里设置。
    如果楼注实在想找找原因,那把代码特出来看看
      

  4.   

    解决了解决了!我用了ArrayList.clear();ArrayList=null;之后就可以了。
    但是速度还是很慢。
    借着这个问题,想问问:
    用java代码从服务器端一次下载这10个文件,如何能一次下载10个而不是分10次下载呢?
      

  5.   

    我的做法是每写一万条,就ArrayList.clear();一次,同时再调用垃圾回收器System.gc().
      

  6.   

    我也是1万条取一次,本来已经用ArrayList.clear()解决了这个问题,但是当增加了ResultSet的几个字段以后,还是报内存错误。
    代码如下:
    List result = new ArrayList();
    while (rs.next())
    {
    String proId = rs.getString("product_Id");
    String proNo = rs.getString("product_No");
    String proName = rs.getString("product_Name");
    String description = rs.getString("description");         Map inv=new HashMap();
    inv.put("proId",proId);
    inv.put("proNo",proNo);
    inv.put("proName",proName);
    inv.put("description",description); //增加了这一句后又报内存错误了
             result.add(inv);
    }
    rs.close();
    return result;
      

  7.   

    如果屏蔽掉写入excel的代码,用system.out.print(),速度虽然慢,但不报错了。 难道jxl真的不能写入大量数据么?好苦恼
      

  8.   

    写到5万(生成5个完整的excel文件,数据正确,可以打开)之后,生成第6个的时候出错。我查了帖子,用poi也有这个毛病。
      

  9.   

    getblob是什么阿?能否解释一下?
      

  10.   

    奥,原来是rs.getblob,请问,他和rs.getString有什么不同呢?返回blob对象和String有什么不同呢?
      

  11.   

    没办法,最后我改成存到.csv了,放弃jxl。