原文地址:http://www.cnblogs.com/yangy608/archive/2010/09/07/1820681.html
jxl.jar jxls-core- 0.9 . 9 .jar jxls-reader- 0.9 . 9 .jar poi- 3.5 -FINAL.jar(必须 3.5 以上的版本) 其他jar根据提示可以去 http: //jarvana.com/jarvana/ 查找 // 生成excel 传入模板文件 要生成的内容 生成文件 返回生成文件的完整路径 public static String doExcel(String from, Map beans, String to) { ServletContext sc = (ServletContext) ActionContext.getContext().get( ServletActionContext.SERVLET_CONTEXT); String path = sc.getRealPath( "/model" ); XLSTransformer transformer = new XLSTransformer(); String sfrom = path + "\\" + from; // 模板文件 String sto = path + "\\" + to; // 要生成的文件 try { transformer.transformXLS(sfrom, beans, sto); } catch (ParsePropertyException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sto; } // 下载 public static void
HttpServletResponse response) { try { response.reset(); response.setHeader( "Content-disposition" , "attachment;success=true;filename =" + URLEncoder.encode(name, "utf-8" ));
BufferedInputStream bis = null ; BufferedOutputStream bos = null ; OutputStream fos = null ; InputStream fis = null ; File uploadFile = new File(path); fis = new FileInputStream(uploadFile); bis = new BufferedInputStream(fis); fos = response.getOutputStream(); bos = new BufferedOutputStream(fos); // 弹出下载对话框 int bytesRead = 0 ; byte [] buffer = new byte [ 8192 ]; while ((bytesRead = bis.read(buffer, 0 , 8192 )) != - 1 ) { bos.write(buffer, 0 , bytesRead);
} bos.flush(); fis.close(); bis.close(); fos.close(); bos.close(); } catch (Exception e) { e.printStackTrace(); } } 调用: List resultList= new ArrayList(); for ( int
0 ; i < list.size(); i++) { 。。。。。。 InspectionStisfaction vo= new InspectionStisfaction(); vo.setXjrq(SystemUtil.getTimeStr2Str(String.valueOf(map.get( "apply_date" )))); vo.setXjsl(lxjsl); vo.setFcmy(lfcmy); vo.setMy(lmy); vo.setYb(lyb); vo.setBmy(lbmy); vo.setFcbmy(lfcbmy); resultList.add(vo); } //生成EXcel Map beans = new HashMap();
beans.put( "resultList" ,resultList); String path=SystemUtil.doExcel( "巡检商户满意度报表模板.xls" , beans, "巡检商户满意度报表.xls" ); SystemUtil.doDownLoad(path, "巡检商户满意度报表.xls" , this .response); return null ; 模板样式:
巡检数量(个) 总体满意度 非常满意 满意 一般 不满意 非常不满意 合计 <jx:forEach items= "${resultList}" var= "l" > ${l.xjrq} ${l.xjsl} ${l.fcmy} ${l.my} ${l.yb} ${l.bmy} ${l.fcbmy} $[B#+C#+D#] </jx:forEach> 当月数量总计(个) $[SUM(B4)] $[SUM(D4)] $[SUM(E4)] $[SUM(F4)] $[SUM(G4)] $[SUM(H4)] $[SUM(I4)] |