https://www.cnblogs.com/huage-1234/p/7366363.html
https://blog.csdn.net/weixin_43165220/article/details/103906831
前端:调用export_data()
function get_download_frame() { var elemIF = document.createElement("iframe"); elemIF.name = "download_frame"; elemIF.id = "download_frame"; elemIF.style.display = "none"; document.body.appendChild(elemIF); return elemIF; } function export_data() { mask_loading("下载文件,请稍后......"); var downloadToken= +new Date(); var zexport_url = "downfile.aspx?downloadToken=" + downloadToken; var elemIF = get_download_frame(); var zfilter = get_filter(); submit_post(zfilter, zexport_url, elemIF.name); function checkToken() { var token = getCookie("downloadToken"); if (token && token == downloadToken) { clearTimeout(downloadTimer); unmask(); } } var downloadTimer = setInterval(checkToken, 1000); } function getCookie(cookieName) { var strCookie = document.cookie; var arrCookie = strCookie.split("; "); for (var i = 0; i < arrCookie.length; i++) { var arr = arrCookie[i].split("="); if (cookieName == arr[0]) { return arr[1]; } } return ""; } function submit_post(zfilter, url, target) { var f = document.createElement("form"); f.name = "report"; document.body.appendChild(f); for (var p in zfilter) { var i = document.createElement("input"); i.type = "hidden"; i.value = zfilter[p]; i.name = p; f.appendChild(i); } f.action = url; f.target = target; f.method = "post"; f.submit(); f.parentNode.removeChild(f); } function get_filter() { var zfilter = { search1: "" }; return zfilter; }
后端
excel.SaveAs(response.OutputStream);
string downloadToken = Request["downloadToken"];
if (!string.IsNullOrEmpty(downloadToken))
{
HttpCookie cookie = new HttpCookie("downloadToken", downloadToken);
cookie.Expires = System.DateTime.Now.AddMinutes(80);
cookie.Path = "/";
response.Cookies.Add(cookie);
}
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
string exportFileName = "MRP_" + string.Concat(
sourceTable.TableName,
DateTime.Now.ToString("yyyyMMddHHmmss"),
".xlsx");
response.AddHeader("content-disposition", string.Format("attachment;filename={0}", exportFileName));