使用Ctrl 生成后弹出一个对话框让用户选择保存地址,下载到客户端本地
代码如下
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.