下载:web层业务实现 @Action(value="subArea_exportExl")public void exportExl(){HttpServletResponse response = ServletActionContext.getResponse();try {ServletOutputStream out = response.getOutputStream();String agent=ServletActionCont
@Action(value="subArea_exportExl") public void exportExl(){ HttpServletResponse response = ServletActionContext.getResponse(); try { ServletOutputStream out = response.getOutputStream(); String agent=ServletActionContext.getRequest().getHeader("User-Agent"); String fileName=FileUtils.encodeDownloadFilename("分区数据.xls", agent); response.setHeader("content-disposition", "attachment;fileName="+fileName); response.setContentType("application/vnd.ms-excel"); subAreaService.exportExl(out); } catch (Exception e) { e.printStackTrace(); } }下载-基于模板:service层业务实现
@Override public void exportExl(ServletOutputStream out) throws Exception { File file=new File("e:\\subArea.xls"); HSSFWorkbook book=new HSSFWorkbook(new FileInputStream(file)); HSSFSheet sheet3 = book.getSheetAt(2); HSSFCellStyle cellStyle = sheet3.getRow(0).getCell(0).getCellStyle(); ListfileUtilslist=subAreaDao.findAll(); HSSFSheet sheet = book.getSheetAt(0); int k=2; // 分拣编号 省 市 区 关键字 起始号 终止号 单双号 辅助关键字 HSSFRow row=null; for (SubArea subArea : list) { row= sheet.createRow(k); row.createCell(0).setCellValue(subArea.getId()); row.createCell(1).setCellValue(subArea.getArea().getProvince()); row.createCell(2).setCellValue(subArea.getArea().getCity()); row.createCell(3).setCellValue(subArea.getArea().getDistrict()); row.createCell(4).setCellValue(subArea.getKeyWords()); row.createCell(5).setCellValue(subArea.getStartNum()); row.createCell(6).setCellValue(subArea.getEndNum()); row.createCell(7).setCellValue(subArea.getSingle()); row.createCell(8).setCellValue(subArea.getAssistKeyWords()); for (int i = 0; i < 9; i++) { row.getCell(i).setCellStyle(cellStyle); } k++; } book.write(out); }
public static String encodeDownloadFilename(String filename, String agent) throws IOException { if (agent.contains("Firefox")) { // 火狐浏览器 filename = "=?UTF-8?B?" + new BASE64Encoder().encode(filename.getBytes("utf-8")) + "?="; filename = filename.replaceAll("\r\n", ""); } else { // IE及其他浏览器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+"," "); } return filename; }subArea.xls subArea.xls