我有一个List里面保存的是对象如何用excel表格导出
要求:
id_u  name_u  onworktime upworktime  result_u  other 
9 jack 2007-11-2 2007-11-2 无 迟到
10 jack 2007-11-2 2007-11-2 无 迟到
11 jack 2007-11-2 2007-11-2 无 迟到

解决方案 »

  1.   

    你可以选择有apache的poi来导出Excel.
    将List中的数据写入Excel中就行.
      

  2.   

    用jxl或poi都可以,更多信息请百度
      

  3.   

    用jxl包。request.setCharacterEncoding("GBK");
    response.reset();
    response.setContentType("application/vnd.ms-excel");

       /********  begin (表头)循环 **************/
        final int CONST_COL_NUM = 5;
        String[] title = new String[CONST_COL_NUM];
        title[0] = "id_u name_u";
        title[1] = "onworktime ";
        title[2] = "upworktime ";
        title[3] = "result_u other";
        title[4] = "name_u";
        /********  end (表头)循环 **************/

      java.util.ArrayList list = new  java.util.ArrayList();  
      int i=0;
      if (你的结果集!=null) 
      while (你的结果集.next() ) {
      i++;
        /********  begin 循环 **************/
     
       String[] data = new String[CONST_COL_NUM];
    data[0] = id_u name_u;
    data[1] = onworktime;
    data[2] = upworktime;
    data[3] = result_u other;
    data[4] = name_u;

       list.add(data.clone());
       /********  end 循环 **************/     
      }// end while
      
      GenExcel excel = new GenExcel();
        excel.getExcel("文件名", list, title, response.getOutputStream());
      

  4.   

    同意使用JXL或者poi写入excel的回答。我的博客中也有jxl操作excel的例子(包括读取、写入、查询某个关键字等等)。http://blog.csdn.net/superjava_2006/archive/2007/05/15/1609490.aspx
      

  5.   

    继承spring的AbstractJExcelView,很简单
      

  6.   

    用jxl或poi都可以,百度中查去,相关代码太多了,不做详解
      

  7.   

    推荐用jxl,jxl相对于poi来说对中文的支持更好一些
      

  8.   

    POI 实现:
    http://blog.csdn.net/xieshengjun2009/archive/2011/02/28/6213529.aspx
      

  9.   

    servlet中的代码:
    response.setContentType("application/msexcel");
      
      File file = new File(String.valueOf(System.currentTimeMillis()+".xls"));
      String filename = "持续集成.xls";
      response.setContentType("application/msexcel");  
      
      export.exportTOExcel(file,dataList);
      
      response.addHeader("Content-Disposition", "attachment;filename="
    +new String(filename.getBytes("GBK"),"ISO-8859-1"));
      OutputStream out = response.getOutputStream();
      byte[] buf = new byte[8092];
      int size = 0;
      FileInputStream input = new FileInputStream(file);
      while((size=input.read(buf))!=-1){
      out.write(buf, 0, size);
      }
      input.close();
      out.close();
      

  10.   

    Export中的代码:
    package com.huawei.idc.util;import java.io.File;
    import java.util.List;import jxl.Workbook;
    import jxl.write.Label;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;public class Export {

    public void exportTOExcel(File file,List<DataVO> dataList)
     {
      try
      {
        WritableWorkbook workbook = Workbook.createWorkbook(file);
        WritableSheet excelsheet = workbook.createSheet("持续集成", 0);
        Label label0 = null;
        Label label1 = null;
        Label label2 = null;
        Label label3 = null;
        Label label4 = null;
        Label label5 = null;
        Label label6 = null;
       
        try
        {
         label0 = new Label(0, 0, "时间");
         excelsheet.addCell(label0);
        
         label1 = new Label(1, 0, "构建成功率");
         excelsheet.addCell(label1);
        
         label2 = new Label(2, 0, "每日可用度");
         excelsheet.addCell(label2);
        
             label4 = new Label(4, 0, "平均失败恢复时长");
         label5 = new Label(5, 0, "check in次数");
         excelsheet.addCell(label4);
         
         excelsheet.addCell(label5);
         
         label6 = new Label(6, 0, "自动化测试用例纳入CI比例 ");
         excelsheet.addCell(label6);
        
        }catch(Exception e)
        {e.printStackTrace();}
       
       
        for(int i = 0; i < dataList.size(); i++)
        {
         DataVO dvo = dataList.get(i);
         try
         {
          label0 = new Label(0, i+1, dvo.getDate());
          excelsheet.addCell(label0);
         
          label1 = new Label(1, i+1, dvo.getBuild_suc_percent());
          excelsheet.addCell(label1);
         
          label2 = new Label(2, i+1, dvo.getDaily_usableness());
          excelsheet.addCell(label2);
         
          label3 = new Label(3, i+1, String.valueOf(dvo.getBuild_time()));
          excelsheet.addCell(label3);
          
          label4 = new Label(4, i+1, String.valueOf(dvo.getResume_timeslice()));
          excelsheet.addCell(label4);
          
          label5 = new Label(5, i+1, String.valueOf(dvo.getCheckIn_times()));
          excelsheet.addCell(label5);
          
          label6 = new Label(6, i+1, dvo.getAtuoText_bringInto_ci());
          excelsheet.addCell(label6);
         
         }catch(Exception e)
         {e.printStackTrace();}    
        }
       
        workbook.write();
        workbook.close();  
      }catch(Exception e){
      e.printStackTrace();
      }
    }
    }
    需要引入jxl.jar库
      

  11.   

    以上代码你也可以把表头以List的方式传入Export类的exportTOExcel,代码仅供参考,可灵活变动。
      

  12.   

    File file = new File("images/Export" + times + ".xls");
    // 将数据写入excel文档
    jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(file);// 存放路径
    jxl.write.WritableSheet ws = wwb.createSheet("Di值各组显示", 10);// 创建excel文档
    ws.addCell(new jxl.write.Label(0, 1, "责任人项目组"));// 字段
    ws.addCell(new jxl.write.Label(1, 1, "汇总"));
    for (int k = 0; k < resultList.size(); k++) {// 循环写入
    Result r = (Result) resultList.get(k);
    ws.addCell(new jxl.write.Label(0, k + 2, "" + r.getName()));
    ws.addCell(new jxl.write.Label(1, k + 2, "" + r.getDi()));
    }
    wwb.write();
    // 关闭Excel工作薄对象
    wwb.close();
      

  13.   

    如果list里面保存的是对象的话就 必须定义一个这种对象从list中取数据
    所以就很难搞5555