java带模板的Excel导出

1.页面代码

	<a href="javascript:void(0)" th:onclick="'javascript:exportForm()'">
		<button aria-hidden="true" type="button" style="margin-bottom: 10px;"
					shiro:hasPermission="vehicle:vehicle:export" class="am-btn am-btn-warning fa fa-plus hidden">
			<span class="am-icon-plus "></span> 导出货柜信息
		</button>
	</a>		

2.js

//导出表格
	function exportForm(){
		var name = $("#name").val();
		var typeName = $("#typeName").val();
		if(typeName=='全部'){
			typeName = null;
		}
		var timeStart = $("#timeStart").val();
		var timeEnd = $("#timeEnd").val();
		location.href="/project/container/export?name="+name+"&typeName="+typeName+"&timeStart="+timeStart+"&timeEnd="+timeEnd; //路径
		
		
	}

3.后台

/**
	 * 导出车辆信息表格
	 * @return 
	 */
	@RequestMapping("/export")
	@RequiresPermissions("project:contaioner:export")
	public void export(@RequestParam Map<String, Object> params,HttpServletResponse response){
		
		Object name =params.get("name");
        Object typeName=params.get("typeName");
        Object timeStart =params.get("timeStart");//开始时间
        Object timeEnd =params.get("timeEnd");//结束时间
        
        ContainerDO c=new ContainerDO();//查询参数
        if(!StringUtils.isEmpty(name)){
            c.setName(name.toString());
        }
        if(!StringUtils.isEmpty(typeName)){
            c.setTypeName(typeName.toString());
        }
       
        if(!StringUtils.isEmpty(timeStart)){
			c.setTimeStart(timeStart.toString());
		}
		if(!StringUtils.isEmpty(timeEnd)){
			c.setTimeEnd(timeEnd.toString());
		}
		//获取当前登录用户的网点
		UserDO user=getUser();
		Long branchId=user.getBranchId();
		
		c.setBranchId(branchId);
		
		List<ContainerDO> list = containerService.export(c);
		
		//数据处理
		for (ContainerDO containerDO : list) {
			
			if(0 == containerDO.getStatus()){
				containerDO.setStatusName("正常");
			}else if(1 == containerDO.getStatus()){
				containerDO.setStatusName("维修中");
			}else if(2 == containerDO.getStatus()){
				containerDO.setStatusName("已调派");
			}
			
			BranchDO branchDO = new BranchDO();
			branchDO = branchService.get(containerDO.getBranchId());
			if(branchDO!=null){
				containerDO.setBranchName(branchDO.getName());
			}
			
			containerDO.setTime(new SimpleDateFormat("yyyy年MM月dd日").format(containerDO.getGmtModified()));
			
		}
		
		LinkedHashMap<String,String> titleMap = new LinkedHashMap<String,String>();
	    titleMap.put("id", "编号");
	    titleMap.put("branchName", "所属网点");
	    titleMap.put("name", "货柜名称");
	    titleMap.put("spaceCapacity", "体积");
	    titleMap.put("weightCapacity", "载重");
	    titleMap.put("value", "类型");
	    titleMap.put("statusName", "状态");
	    titleMap.put("containerLength", "长度");
	    titleMap.put("containerWidth", "宽度");
	    titleMap.put("containerHeight", "高度");
	    titleMap.put("vehicleName", "绑定车辆");
	    titleMap.put("time", "操作日期");
	//    String sheetName = "货柜信息";
	    
	    // 带模板
	 	InputStream template = ExportExcel.class.getResourceAsStream("/xls/container.xls");
	 	
	 	Map<String, Object> extendInfo = new HashMap<>();
		extendInfo.put("1:1", new Date());
		extendInfo.put("1:4", getUser().getRealName());
		ExportExcel.excelExportWithTemplate(response, list, titleMap, "数据报表", template, 2, 4, null, extendInfo);		
		
	    long start = System.currentTimeMillis();
	 //   ExportExcel.excelExport(response,list, titleMap, sheetName);
		int time = Integer.valueOf((int) (System.currentTimeMillis() - start));
	    LogDO log = new LogDO("export()","货柜信息导出",time,"{操作人:"+getUserId()+"}");
		logService.save(log);
	}

4.模板
java带模板的Excel导出