以下为excelBlob.js
/*用来处理文件流导出*/
import moment from "moment";
export default function excel(data, name, append = "xls", preview = false) {
let blob = new Blob([data])
let xlsxName = moment(new Date()).format('YYYY-MM-DD') + `${name}.${append}`
if (preview) {
xlsxName = name
}
const elink = document.createElement('a')
elink.download = xlsxName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
页面引用时
import excel from "../../util/excelBlob";
接口调用时(文件流模板下载导出都可以这样用)
this.api.PersonEXPORT(params).then(res => excel(res, "单子导出", "xlsx"))
接口API设置
export const GetlTemplates = (data, showMsg) => ajax({
url: config.javaAprightBill + types.Get__TEMPS,
data,
method: 'post',
config: { // 加上这部分即可
responseType: 'blob'
},
showMsg
})