使用jexcelapi生成excel保存在客户端

使用jexcelapi导出Excel,可以很容易的生成Excel.但生成的excel是在服务器端。但是看了伟库的导出excel的功能,是像我们在网上下载文件一样,生成后弹出一个对话框让用户选择保存地址,下载到客户端本地。于是研究了下觉得应该以流的形式来处理

action代码如下
public ActionForward exeExcel(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)throws Exception {
	System.out.println("exeExcel");
				
         try   
	   {   
	   response.reset();		 
	// response.setContentType("application/vnd.ms-excel");
	   response.setHeader("Content-disposition","attachment; filename=ete_vip_data.xls");
	   response.setContentType("application/msexcel");
	  //打开文件   
	  //WritableWorkbook   book=  Workbook.createWorkbook(new File("c://测试.xls"));//这样写就生成在服务器端c盘了
	WritableWorkbook book=Workbook.createWorkbook(response.getOutputStream());//生成的文件以流的形式输出
			       
      //生成名为“第一页”的工作表,参数0表示这是第一页   
        WritableSheet   sheet=book.createSheet("第一页",0);   
      //在Label对象的构造子中指名单元格位置是第一列第一行(0,0)   
      //单元格内容为test    
      Label   label=new   Label(0,0,"test");
     //将定义好的单元格添加到工作表中    
      sheet.addCell(label);
		    		      
      book.write();
      book.close();
		     
      response.getOutputStream().flush();
      response.getOutputStream().close();
		    
     }catch(Exception   e)   
     {   
        System.out.println(e);   
      }
       return null;
}

直接访问此action就会提示出下载excel.
jexcelapi下载: http://jexcelapi.sourceforge.net

你可能感兴趣的:(C++,c,单元测试,C#,Excel)