ajax下载excel文件

  |   0 评论   |   0 浏览

前端

<!-- ajax下载excel文件 -->
	<script type="text/javascript">
	function downloadExcel(){
		var beginDate = $("#beginDate").val();
		var endDate =$("#endDate").val();
		if(!beginDate){
			top.$.jBox.tip('请选择 开始日期','warn');
			return;
		}
		if(!endDate){
			top.$.jBox.tip('请选择 结束日期','warn');
			return;
		}
		$.jBox.tip('正在处理,请稍等...','loading');
		var xhr = new XMLHttpRequest();
        xhr.open('post', '${ctx}/comprehensive/listExport', true);
        xhr.responseType = 'blob';
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onload = function () {
            if (this.status == 200) {
            	$.jBox.closeTip();
            	top.$.jBox.tip('文件开始下载...','success');
                var blob = this.response;
                var a = document.createElement('a');
                var url = window.URL.createObjectURL(blob);
                a.href = url;
                //设置文件名称
                a.download = '统计分析.xlsx';
                a.click();
                a.remove();
            }
        }
        xhr.send("beginDate="+beginDate+"&endDate="+endDate);
	}	
	</script>

后端

@RequestMapping(value = "listExport")
	public String listExport(Comprehensive comprehensive, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
		try {
            String fileName = "统计分析"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
            List<Comprehensive> list = comprehensiveService.findList(comprehensive);
            ExportExcel exportExcel = new ExportExcel("综合统计分析 ", Comprehensive.class);
    		Comprehensive.mergeCell(exportExcel);
    		exportExcel.setDataList(list).write(response, fileName).dispose();
    		return null;
		} catch (Exception e) {
			addMessage(redirectAttributes, "导出失败!失败信息:"+e.getMessage());
		}
		return "redirect:" + adminPath + "/comprehensive/list";
	}