实现多个excel导出不要压缩包

前台html如下:

<div style="display: none" id="downLoadIframeDivExample">
		  <iframe id="downLoadZipIframe{serialNo}" name="downLoadIframe{serialNo}" style="width: 0px;height: 0px;display: none;">
		  </iframe>
		  <form id="downLoadZipForm{serialNo}" action="/grm/ecp/FileAccessServlet"  target="downLoadIframe{serialNo}" method="post">
		    <input id="downloadFileName" type="hidden" name="name" >
		    <input id="downloadFileType"  type="hidden" name="fileType">
		    <input type="hidden" name="beanId" value="">
		    <input type="hidden" name="method" value="">
		    <input id="downloadOperParams" type="hidden"  name="operParams" value="" />
		    <input type="submit" value="" hidden="hidden">
		  </form>
		</div>

js 如下:

	function exportFileEvent(){
				var rowDatas = _thisPage.gridTable.getSelectedRowData();	
				var $body = $("body");
				//2021-01-20修改附表导出由压缩包变为多个excel
				var frameHtml = $("#downLoadIframeDivExample").html();
				if (rowDatas.length>0) { // 选择导出项目
					for(var i=0;i<rowDatas.length;i++){
						(function(i){
							_thisPage.params.projectIds = rowDatas[i].projectid;
						    _thisPage.params.modelIds = rowDatas[i].modelid;
							var zipName = rowDatas[i].projectno+"-"+rowDatas[i].projectname+"-"+rowDatas[i].createcompname;
							var formHtml = frameHtml.replaceAll("{serialNo}",(i+1));
							$body.append(formHtml);			
			                var beanId = _thisPage.queryBeanId;
							var method = "exportProjectFBListZip";
							$("#downLoadZipForm"+(i+1)+" #downloadFileName").val(zipName);
							$("#downLoadZipForm"+(i+1)+" #downloadFileType").val("xls");
							$("#downLoadZipForm"+(i+1)+" #beanId").val(beanId);
							$("#downLoadZipForm"+(i+1)+" #method").val(method);
							$("#downLoadZipForm"+(i+1)+" #downloadOperParams").val($.toJSON({p0:_thisPage.dataContext,p1:_thisPage.typeId,p2:_thisPage.params,p3:zipName,p4:_thisPage.modelId}));
							$("#downLoadZipForm"+(i+1)).attr("action","/grm/ecp/FileAccessServlet?beanId="+beanId+"&method="+method);
							$("#downLoadZipForm"+(i+1)).submit();
						}(i));
					}
				} 
			}

由于下载文件只有一个入口,所以在这里使用循环的方式提交请求。一个请求对应一个iframe,所以在html中使用{serialNo}作为模板,在js中循环替换生成多个iframe,downLoadZipForm:form表单最好也是生成多个的,和iframe对应起来。

 <input type="submit" value="" hidden="hidden">

需要设置成hidden,测试时会在页面上显示出来。

js 中涉及到js闭包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值