实现excel导出功能的三种情景
-
后端生成excel并封装好,直接将文件地址通过接口返回给前端。前端拿到文件地址后通过js创建
a
标签,将文件地址赋值给a
标签的href
属性,调用a
标签的click方法,最后移除a
标签即可const link = document.createElement('a') link.download = fileName // 赋值文件名 link.style.display = 'none' link.href = path document.body.appendChild(link) link.click() document.body.removeChild(link)
-
后端生成excel,但接口返回生成excel的二进制流
const content = res.blob // 首先获取文件流 const blob = new Blob([content], { type: 'application/octet-stream'}) // 创建blob实例 将文件流转化为类文件对象 const url = URL.createObjectURL(blob) // 生成文件下载url 后面的操作和第一类相同生成a标签并点击
-
前端生成excel,后端只提供excel内部填充数据
下面将详细描述埋点导出的原理,前端如何生成excel以