利用jxl将数据导出到excel时弹出保存对话框的例子
public String outPutExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response) { //获取时间区域 String timeArea = request.getParameter("timeArea"); String keyword = request.getParameter("keyword"); String select = request.getParameter("select"); //获取操作类型 String operate = request.getParameter("operate"); // File file = new File("daily.xls"); try { OutputStream os = response.getOutputStream();// 取得输出流 response.reset();// 清空输出流 response.setHeader("Content-disposition", "attachment; filename=" + new String("daily".getBytes("GB2312"), "iso8859_1") + ".xls");// 设定输出文件头 response.setContentType("application/msexcel");// 定义输出类型 WritableWorkbook workbook = Workbook.createWorkbook(os); if (workbook != null) { WritableSheet sheet = workbook.createSheet("sheet1", 0); // 设置标题 sheet.addCell(new jxl.write.Label(列(从0开始), 行(从0开始), 内容.)); try { sheet.addCell(new Label(0, 0, "区域名")); sheet.addCell(new Label(1, 0, "所在位置")); sheet.addCell(new Label(2, 0, "操作人员")); sheet.addCell(new Label(3, 0, "时间")); sheet.addCell(new Label(4, 0, "操作类型")); sheet.addCell(new Label(5, 0, "备注")); // 设置单元格的宽度 sheet.setColumnView(0, 20); sheet.setColumnView(1, 40); sheet.setColumnView(2, 15); sheet.setColumnView(3, 30); sheet.setColumnView(4, 15); sheet.setColumnView(5, 20); //添加数据 List<SysActionLog> list = this.getSysActionLogs(timeArea, keyword, select, operate); SysActionLog log = null; for (int r = 0; r < list.size(); r++) { //行编号 log = list.get(r); //区域名 sheet.addCell(new Label(0, r + 1, log.getFilealia())); //所在位置 sheet.addCell(new Label(1, r + 1, log.getFilename())); //操作人员 sheet.addCell(new Label(2, r + 1, log.getAuthor())); //时间 sheet.addCell(new Label(3, r + 1, log.getFormatDate())); //操作类型 sheet.addCell(new Label(4, r + 1, log.getSysAction().getMessage())); //备注 sheet.addCell(new Label(5, r + 1, log.getComment())); } //从内存中写入文件中 workbook.write(); //关闭资源,释放内存 workbook.close(); /*response.reset(); FileInputStream f = new FileInputStream(file); byte[] fb = new byte[f.available()]; f.read(fb); response .setHeader("Content-disposition", "attachment; filename=" + new String("daily.xls" .getBytes("gb2312"), "iso8859-1")); ByteArrayInputStream bais = new ByteArrayInputStream(fb); int b; while ((b = bais.read()) != -1) { response.getOutputStream().write(b); } response.getOutputStream().flush(); //删除服务器上的文件 file.deleteOnExit();*/ } catch (RowsExceededException e) { logger.error("sheet不存在", e); } catch (WriteException e) { logger.error("创建列名出错", e); } } } catch (IOException e) { logger.error("文件创建出错", e); } return "daily.vm"; }?