//列标题
var str = '<tr><td>游戏名称</td><td>角色名</td><td>区服</td><td>区号</td><td>支付方式</td><td>交易单号1</td><td>交易单号2</td><td>新注册账号</td><td>手机号</td><td>提交日期</td></tr>'
//循环遍历,每行加入tr标签,每个单元格加td标签
//this.userlist : vue里面获得的后端数据
for (let i = 0; i < this.userlist.length; i++) {
str += '<tr>'
for (let item in this.userlist[i]) {
//增加\t为了不让表格显示科学计数法或者其他格式 \u200C
if (item == "Order1" || item == "Order2" || item == "Account") {
//阻止输出的数据进行科学计数
str += `<td style="mso-number-format:'\@';" >${ this.userlist[i][item]}</td>`
} else {
str += `<td>${ this.userlist[i][item]}</td>`
}
}
str += '</tr>'
}
//Worksheet名
var worksheet = 'Sheet1'
var uri = 'data:application/vnd.ms-excel;base64,'
//下载的表格模板数据
var template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name>
<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head><body><table>${str}</table></body></html>`
//下载模板
//window.location.href = uri + base64(template);
window.open(uri + base64(template), "_blank")
}
//输出base64编码
function base64(s) {
return window.btoa(unescape(encodeURIComponent(s)))
}123456789101112131415161718192021222324252627282930313233343536373839
来源:https://blog.csdn.net/gmaaa123/article/details/102775325