javascript部分
//项目导出 function exportExl(){ var xzqh = tree0.getValue(); var nf=NF.getValue(); var xmmc=XMMC.getValue(); var xmzt=XMZT.getValue(); location.href = "exportxmexl?XMLX=001&XZQH="+xzqh+"&NF="+nf+"&XMMC="+xmmc+"&XMZT="+xmzt+"&ZHTJ="+SQL_ZHTJ; }
java部分
@SuppressWarnings("unchecked") @RequestMapping("/exportxmexl") public Object exportXmExl(HttpServletRequest request, HttpServletResponse response) { Subject subject = SecurityUtils.getSubject(); User user = (User) subject.getPrincipal(); Map<String, Object> p = new HashMap<String, Object>(); p.put("XMLX", request.getParameter("XMLX")); p.put("XZQH", request.getParameter("XZQH")); p.put("NF", request.getParameter("NF")); p.put("XMMC", request.getParameter("XMMC")); p.put("XMZT", request.getParameter("XMZT")); p.put("ZHTJ", request.getParameter("ZHTJ")); // 获取数据list List<Map<String, Object>> list = daXmcxService.getXmList2(p, user); // 获取excl模本 String path = "WEB-INF/exceltemplate/xmTemplate.xls"; if( request.getParameter("XMLX").indexOf("002")!=-1){ path = "WEB-INF/exceltemplate/xmTemplateCyhtx.xls"; } if( request.getParameter("XMLX").indexOf("003")!=-1){ path = "WEB-INF/exceltemplate/xmTemplateCyhbz.xls"; } String realpath = request.getSession().getServletContext() .getRealPath(path); HSSFWorkbook workbook = null; try { workbook = new HSSFWorkbook(new FileInputStream(realpath)); } catch (IOException e1) { e1.printStackTrace(); } // 创建sheet HSSFSheet sheet = workbook.getSheetAt(0);// 读取sheet HSSFCellStyle style1 = workbook.createCellStyle(); style1.setBorderTop(HSSFCellStyle.BORDER_THIN); style1.setBorderLeft(HSSFCellStyle.BORDER_THIN); style1.setBorderRight(HSSFCellStyle.BORDER_THIN); style1.setBorderBottom(HSSFCellStyle.BORDER_THIN); HSSFCellStyle cellStyle = workbook.createCellStyle(); HSSFDataFormat format = workbook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("yyyy-mm-dd")); cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 绘制单元格 Iterator<Map<String, Object>> i = list.iterator(); int iRow = 1; HSSFRow row; HSSFCell cell; while (i.hasNext()) { int iCell = 0; Map<String, Object> dataRow = (Map<String, Object>) i.next(); Iterator<String> j = dataRow.keySet().iterator(); row = sheet.createRow(iRow);// 创建行 while (j.hasNext()) { cell = row.createCell(iCell);// 创建列 cell.setCellStyle(style1); String keyvalue = String.valueOf(dataRow.get(j.next())); if (keyvalue == null || keyvalue == "" || keyvalue.equals("null")) { keyvalue = ""; } cell.setCellValue(keyvalue); iCell++; } iRow++; } ServletOutputStream os = null; try { String filename = "项目导出列表.xls"; response.setContentType("application/vnd.ms-excel");// 设置生成的文件类型 response.setHeader("Content-Disposition", "filename=" + new String(filename.getBytes("gb2312"), "iso8859-1"));// os = response.getOutputStream(); workbook.write(os); os.flush(); response.flushBuffer(); os.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (os != null) { try { os.close(); } catch (IOException e) { os = null; } } } return null; }