java根据Excel模板导出excel

【java根据Excel模板导出excel】好久之前做的功能,现在项目又有这个需求,故在此记录一下。
需要jar包:
如果是 maven项目需要引入下面这个就可以

net.sf.jxls jxls-core 1.0.3

如果不是maven:https://download.csdn.net/download/mufeng633/11097086
伪代码:
import net.sf.jxls.exception.ParsePropertyException; import net.sf.jxls.transformer.XLSTransformer; public Object exportToProveExcel(){ try { Map, String> dataMap = getService().selectdatas(dataId, tableId); //下载文件 if (dataMap.size() > 0 ) { String currntTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); Map,Object> cMap = new HashMap(); Map,Object> messMap = new HashMap(); //结婚证明Excel模板 String srcFilePath = ServletActionContext.getServletContext().getRealPath("WEB-INF/template/结婚证明(A4)0921 (1).xls"); String newFileName = "结婚证明 "+currntTime; messMap.put("man",dataMap.get("MAN")); //男方姓名 messMap.put("woman",dataMap.get("WOMAN")); //女方姓名 cMap.put("vms", messMap); HttpServletResponse response = ServletActionContext.getResponse(); response.reset(); response.setContentType("application"+ File.separator+"vnd.ms-excel"); //下载文版类型 response.addHeader("Content-Disposition", "attachment; filename="+new String( newFileName.getBytes("gb2312"), "ISO8859-1" )+".xls"); //生成的临时导出文件 File destFile = File.createTempFile(newFileName, ".xls"); //开始转换。利用transformer 转到Excel XLSTransformer transformer = new XLSTransformer(); // 参数:srcFilePath:模板源文件cMap:需要导出的数据destFile.getAbsolutePath():下载的目标文件 transformer.transformXLS(srcFilePath, cMap, destFile.getAbsolutePath()); FileInputStream fis = new FileInputStream(destFile); ServletOutputStream out = response.getOutputStream(); byte[] bytes = new byte[512]; int i = 0; while ((i = fis.read(bytes))!=-1){ out.write(bytes,0,i); } out.close(); fis.close(); destFile.delete(); }}catch (Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); } return new DefaultHttpHeaders(SUCCESS).disableCaching(); }

Excel模板为:
java根据Excel模板导出excel
文章图片

如果需要循环,则可以这样:
添加循环体代码:
${var.UserName}

其中: vms为外层的键
如:
java根据Excel模板导出excel
文章图片

最后导出的文件:
java根据Excel模板导出excel
文章图片

到此 完成。

    推荐阅读