应该是excel本身放不下那么大的数据,你不防把数据差分,导到不同的文件里

解决方案 »

  1.   

    可以放,我只有不到一万行,excel可以放65535行啊,我用JProbe启动服务导出时没问题,但用eclipse就内存溢出了
      

  2.   

    package com.struts.form;
    import java.io.OutputStream;
    import java.util.List;import jxl.Workbook;
    import jxl.write.WritableFont;
    public class ExcelBean {

    public String expordExcel(List list,OutputStream os )throws Exception
    {

    jxl.write.WritableWorkbook wbook=Workbook.createWorkbook(os);//建立Excel文件
         String title="测试数据";
         jxl.write.WritableSheet sheet=wbook.createSheet("第一页", 0);//为文件的sheet设置名字
         //设置标题  start
           jxl.write.WritableFont wfont=new  jxl.write.WritableFont(WritableFont.ARIAL,16,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);  //设置标题的格式
           jxl.write.WritableCellFormat wcformat=new  jxl.write.WritableCellFormat(wfont);
           jxl.write.Label wlabel;
           wlabel=new jxl.write.Label(1,0,title,wcformat);//把标题放到excel文件中‘2’代表列,‘0’代表行,title是内容,wcformat是格式
     sheet.addCell(wlabel);
     //设置标题 end
     //设置表头  start
                     wfont=new jxl.write.WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.DARK_GREEN);  //设置表头的格式
                     wcformat=new jxl.write.WritableCellFormat(wfont);
                     wlabel=new jxl.write.Label(0,1,"TID",wcformat);
                     sheet.addCell(wlabel);
                     wlabel=new jxl.write.Label(2,1,"Tname",wcformat);
                     sheet.addCell(wlabel);
     //设置表头  end
                     
                 //输出数据格式的设置  start
                     
                     wfont=new jxl.write.WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);  //设置表头的格式
                     wcformat=new jxl.write.WritableCellFormat(wfont);
                     for(int i=0;i<list.size();i++)
                     {
                      TestForm tf=(TestForm)list.get(i);
                      wlabel=new jxl.write.Label(0,i+2,tf.getTid(),wcformat);
                      sheet.addCell(wlabel);
                      wlabel=new jxl.write.Label(2,i+2,tf.getTname(),wcformat);
                      sheet.addCell(wlabel);
                     }
                     wbook.write();
                     wbook.close();
                 //输出数据格式的设置  end
     return "success";
    }}
      

  3.   

    换一种导入方式
    看看我的资源里面那个导入到excel
    http://lihan6415151528.download.csdn.net/
      

  4.   

    大哥你的代码就跟jyq0105的一样,没差别啊,真是服了你了
      

  5.   

    内存溢出主要是由于你使用了jxl插件和eclipse中jvm内存设置不够大 ,9000多条50个字段一次放入内存一般的机器能不搞溢出吗,要是你不注重格式我劝你还是不要用插件 直接就用流给写到文件里 \t,分单元格\n换行~
      

  6.   

    这个不大行,我还有转码之类的东西,或者不用jxl用其他的工具能解决大数据量导出的问题么?