说明:该导出主要是基于后端做的,前端拿到二进制blob文件流
方法一:导出后直接打开的是表格
handleExport() {
let _this = this;
if (_this.exportIds.length == 0) {
return _this.$message.info("暂无选择要导出的数据");
}
axios.get("https://********/****/export.do", {
params: {
ids: _this.exportIds.join(","),
_t: new Date().getTime()
},
responseType: "blob" // 1.首先设置responseType对象格式为 blob:
}).then(res => {
//resolve(res)
// 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel"
});
// 3.创建一个临时的url指向blob对象
let url = window.URL.createObjectURL(blob);
// 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
let a = document.createElement("a");
a.href = url;
a.download = "导出数据_" + new Date().getTime() + ".xlsx"; //自定义导出文件名
a.click();
// 5.释放这个临时的对象url