前端导出功能,是不是必须得要后端写个接口,这个东西该如何去做

前端导出功能,是不是必须得要后端写个接口,这个东西该如何去做

导出什么,导出简单的csv,txt,json,html都可以,复杂的需要后端做

对 一般都需要接口,前端这边就页面给个导出按钮,将数据通过接口传给后端,后端会返回给前端下载链接,前端解析并创建隐藏的a标签,模拟用户点击触发文件下载。不过好像有第三方库是有提供前端生成和下载文件的api你可以找找


download(){
    axios.get('下载文件接口',{responseType:'blob',params:{后端需要的数据} }).then(res => { //后端返回文件流
        if (res.status === 200) {
            let a = document.createElement("a"); //创建a标签
            a.href = URL.createObjectURL(res.data) //获取当前文件的一个内存URL
            a.download = '文件名'; //下载的文件名
            a.style.display = "none"
            document.body.appendChild(a)
            a.click()
            a.remove()
        }
    }).catch((e) => {
        console.log(e);
    })
}

文件的上传和下载

前端有一个很实用的,xlsx插件,可以导入导出表格,很简单,可以自己用一下试一试