用js实现数据导出成excel表格
在开发过程中遇到了老板需要把呈现在列表里面的数据导出成excel表格的问题,百度了一些方案,现在做个总结
//我这里用静态数据做个例举,大家可以根据自己需求对应修改
function exportToExcel(){
let headerList = [‘姓名‘,‘年龄‘,‘出生日期‘]; 表头部分
let bodyList = [
[‘新狗‘,‘18‘,‘1993‘],
[‘蜡笔‘,‘22‘,‘2000‘]
];//主体内容部分
let excelList = [];//声明一个空数组准备将头部和内容柔和在一起
excelList.push(thList.join("\t,") + "\n")
//这条语句的意思是将头部集合转换为已特殊符"\t,"分开的字符串,"/t,"在excel中相当于tab建的作用,
作用就是切换到后面的单元格,这样headerList中的每一个元素都可以占在各自的单元格中,"\n"就是说当每一条字符串结束后换行,
这样就可以让bodyList每一条子集合数据都独立拥有一行
bodyList.forEach(item=>{
excelList.push(item.join("\t," + "\n")) //原理跟上述一样
})
var merged = excelList .join("");//将上述得到的excel集合,转化为excel表格中的需要使用的字符串
//## 导出操作
// encodeURIComponent解决中文乱码
const uri =
"data:text/csv;charset=utf-8,\ufeff" + encodeURIComponent(merged);
// 通过创建a标签实现
let link = document.createElement("a");
link.href = uri;
link.download = `在线简历库${proxy.$tool.makeDate(new Date(), true)}.csv`; //这里是最后下载下来的excel表格名称
link.click();
}