用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();
}