简单的excel操作--导出

/**
   * 导出excel表格
   * 1.sqlId
   * 2.文件名
   * 3.文件工作表名
   * 4.工作表的标题
   */
  String sqlId = "Department_Select_One";
  String fileName = "testXls";
  String workSheet = "List";
  String[] title = {"编号","名称","地址"};
  System.out.println("开始了----------------");
  
  //创建excel工作薄
  WritableWorkbook workBook = null;
  try{
   /**
    * 创建输出缓存
    */
   ByteArrayOutputStream cacheStream = new ByteArrayOutputStream();
   workBook = jxl.Workbook.createWorkbook(cacheStream);
   //创造第一个工作表
   WritableSheet sheet = workBook.createSheet("mySheet1", 0); 
   //拿到要导出的数据
   List maps = BaseDao.getObj(sqlId);
   for(int j=0;j<maps.size();j++){
    Map map = (Map)maps.get(j);
    for(int i=0;i<title.length;i++){
     //创建每行的数据 列 行  值
     Label label1 = new Label(j,0,map.get("DEPTNO").toString());
     Label label2 = new Label(j,1,map.get("DNAME").toString());
     Label label3 = new Label(j,2,map.get("LOC").toString());
     sheet.addCell(label1);
     sheet.addCell(label2);
     sheet.addCell(label3);
    }
   }
   workBook.write();
   workBook.close();
   
   javax.servlet.ServletOutputStream outputStream = null;
   
   String strFileName = new String(fileName.getBytes("gb2312"), "iso-8859-1");

            response.reset();
            response.setContentType("application/x-download");

            // if (request.getHeader("User-Agent").indexOf("MSIE 5.5") != -1) { ... IE5.5不能加上 attachment;
            response.setHeader("Content-Disposition", "attachment; filename=/"" + strFileName+".xls" + "/"");

            byte[] buffer = cacheStream.toByteArray();
           
            int length = buffer.length;

            outputStream = response.getOutputStream();
            outputStream.write(buffer, 0, length);
            outputStream.flush();

            outputStream.close();
            response.setStatus(HttpServletResponse.SC_OK);
            response.flushBuffer();
           
  }catch(Exception e){
   e.printStackTrace();
  }
  
  System.out.println("结束了----------------");

 

--以上是在网络中导出

--注意:在本地上导出的时候用的流不一样OutputStream

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值