1. 拥有后台数据
// 导出为excel
export function exportList() {
return request({
url: api + "后台接口",
method: "get",
// 设置为blob格式
responseType: "blob",
});
}
- 点击按钮触发事件
handleExport() {
exportList().then((res) => {
console.log(res); // 后台会返回一个串乱码
this.$message.success("正在下载中!");
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
let url = URL.createObjectURL(blob);
let a = document.createElement("a");
a.href = url;
a.download = "分类表格";
a.click();
// 释放这个临时的对象url
window.URL.revokeObjectURL(url);
});
},
2. 前台导出文件
npm install papaparse
import Papa from “papaparse”;
- 点击按钮触发事件
// 导出excel表
exportExcel() {
var csv = Papa.unparse(this.data); //data数据 这个数据是el-table中的数据
//定义文件内容,类型必须为Blob 否则createObjectURL会报错
let content = new Blob([csv]);//后缀
//生成url对象
let urlObject = window.URL || window.webkitURL || window;
let url = urlObject.createObjectURL(content);
//生成<a></a>DOM元素
let el = document.createElement("a");
//链接赋值
el.href = url;
el.download = "文件导出.csv";//后缀
//必须点击否则不会下载
el.click();
//移除链接释放资源
urlObject.revokeObjectURL(url);
},