今天后端同事要求添加一个 excel文件的下载功能:

目前后端提供的文件导出,一共有两种形式:

1.提供文件的相对路径

在这里插入图片描述

前端需要自行拼接,然后通过window.open()将文件下载到本地

代码如下:

exportRecord(){
	this.exportLoading = true;//按钮的防抖
	$.ajax({
		//url是请求接口的路径,后面的url是基本地址,也就是端口号及之前的部分,后面拼接的是接口请求的参数
	    url: url + "/Wms/Wms_PackageSigningMain/SignExport?signingTimeMin=" + this.input.SigningTimeMin + "&signingTimeMax=" + this.input.SigningTimeMax,
	    type: "get",//get请求
	    beforeSend: (request) => {//后端要求我传递cookie.如果不需要可以直接去掉此部分
	        request.setRequestHeader("token", cookie)
	    },
	    xhrFields: {//开始传递cookie的方式,后面发现无效,改为上面的beforeSend的方式
	        withCredentials: true
	    },
	    success: (res) => {
	        if (res.success) {
	            this.$message.success('导出成功');//请求成功后,可以拿到相对路径,然后通过window.open可以下载到本地
	            res.message && window.open(url+res.message)
	        } else {
	            this.$message.error(res.message||'导出失败');
	        }
	    },
	    complete: () => {
	        this.exportLoading = false;
	    }
	});
}

2.后端返回文档流,可以直接通过window.open()下载

在这里插入图片描述

直接通过window.open()将文件下载到本地

代码如下:

var urls = url + "/Wms/Wms_PackageSigningMain/CompanySummaryExport?signingTimeMin=" + this.input.SigningTimeMin + "&signingTimeMax=" + this.input.SigningTimeMax;
window.open(urls)
this.$message.success('快递公司导出成功');

完成!!!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐