问题描述:
          在servlet通过poi生成excel通过reponse返回给浏览器下载,现在导出的数据大于10w条,实现的代码是在for循环将数据写入生成的excel中,通过BufferedOutputStream流返回,一次导10W以上的数据肯定会OutOfMemoryError,现在想每次写1000条后,通过reponse返回给浏览器,然后再写1000,再通过reponse返回给浏览器
提问:          1. 一个请求,reponse可以返回多次吗?
          2. 浏览器收到第一次的reponse返回值是否会弹出下载对话框?还是要等到文件传完后才弹出?

解决方案 »

  1.   

    晕。excle的最大行数不是65535?10w行太多了吧。
      

  2.   

    对,一个sheet里面2003支持2003.2007支持10W多一点,可以创建多个sheet解决
      

  3.   

    1. 一个请求,reponse可以返回多次吗? 
    不行,只能1次
    2. 浏览器收到第一次的reponse返回值是否会弹出下载对话框?还是要等到文件传完后才弹出?
    返回了就出现了,所以reponse没有返回多次
      

  4.   

    先检查你的SQL,最好不要用FIRST ,LAST方法
    然后用判断创建SHEET标签
    它会先生成再弹出何存对话框