场景:
使用xlsx包导出excel文件时,需要把导出的excel同时上传到服务器上去,但是xlsx没有直接获取到file文件的方法,所以经过请教大神之后对xlsx下载文件的时候进行了流和file文件的转化,废话不多说直接上代码了
代码如下:
//Export2Excel.js 文件下
const blob = new Blob([s2ab(wbout)], {
type: "application/octet-stream"
})
saveAs(blob, `${filename}.${bookType}`);
const file = new File([blob], `${filename}.${bookType}`)
return file;
使用时的代码
const tHeader = ['id', 'title', 'author', 'pageviews', 'display_time']
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
let list = [
{
"id": 1,
"author": "Barbara",
"title": "Qlgsldfl",
"display_time": "2001-09-12 07:31:47",
"pageviews": 4458,
}
]
const dataStr = this.formatJson(filterVal, list)
console.log('dataStr',dataStr)
const file = export_json_to_excel({
header: tHeader,
data: dataStr,
filename: data.templateName,
autoWidth: true,
bookType: 'xlsx'
})
// 拿到file对象后 调用上传接口,然后服务器返回的上传后的文件地址后,就可以继续处理后续逻辑
console.log(file)
下篇介绍blob转file文件