分别导出csv格式和xls两种格式的表格
function exportCsv(obj) {// 列表头部let title = obj.title;// 拿到对象数据的键,因为是一样的只去第一个即可let dataKey = Object.keys(obj.data[0]);// 列表内容let data = obj.data;// 拼接 enter 键或者换行符// 导出的是csv文件/*let str = [];str.push(obj.title.join(",") + "\r\n");for (let i = 0; i < data.length; i++) {let temp = [];for (let j = 0; j < dataKey.length; j++) {if (j + 1 == dataKey.length) {// 添加‘\t’,在数字超过10位时,不以科学计数显示,而是完整显示temp.push(`\t${data[i][dataKey[j]]}`);} else {temp.push(data[i][dataKey[j]]);}}// 拼接 enter 键或者换行符str.push(temp.join(",") + "\r\n");}JSON.stringify(str)let blob = new Blob(["\uFEFF" + str.join("")], {type: "text/csv;charset=utf-8", });const url = window.URL.createObjectURL(blob); */// 导出的是xls格式let str = "";str += obj.title.join(",") + "\r\n";for (let i = 0; i < data.length; i++) {let temp = [];for (let j = 0; j < dataKey.length; j++) {if (j + 1 == dataKey.length) {// 添加‘\t’,在数字超过10位时,不以科学计数显示,而是完整显示temp.push(`\t${data[i][dataKey[j]]}`);} else {temp.push(data[i][dataKey[j]]);}}// 拼接 enter 键或者换行符str += temp.join(",") + "\r\n";}// encodeURIComponent解决中文乱码const url ="data:application/vnd.ms-excel;charset=utf-8,\ufeff" + (str);let downloadLink = document.createElement("a");downloadLink.href = url;downloadLink.download = "test.xls"; // 导出的文件名 csv格式的在此文件后缀改成csvdownloadLink.click();window.URL.revokeObjectURL(url);}function exprot1() {exportCsv({title: ["国家", "首都", "GDP"],data: [{ country: "中国", city: "北京", gdp: "123456789123" },{ country: "美国", city: "华盛顿", gdp: "123456789123" },{ country: "巴西", city: "巴西利亚", gdp: "123456789123" },{ country: "英国", city: "伦敦", gdp: "123456789123" },],});}
