1. 拼接傳回的json資料
// 拼接需要下載下傳報表的HTML,并傳回html;
reportHtml(reporttData) {
let html = `<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]>
<meta http-equiv="Content-Type"" content="text/html;charset=utf-8" />
<style> .xl24 {
mso-style-parent: style0;
mso-number-format: "" \\@ "";
text-align: right;
vnd . ms-excel .
numberformat: @
} </style>
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>報表</x:Name>
<x:WorksheetOptions>
<x:DisplayGridlines/>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]--></head>
<body>`
html += `<table><thead>
<tr>
<th>姓名</th>
<th>性别</th>
<th>備注</th>
</tr>
</thead><tbody>`;
reporttData.forEach(item => {
html += `<tr>
<td>${item.name ? item.name : \'\'}</td>
<td>${item.sex === \'1\' ? \'男\' : \'女\'}</td>
<td>${item.IsVip === \'1\' ? \'會員\' : \'非會員\'}</td>
<td>${item.msg? item.msg : \'\'}</td></tr>`;
})
html += `</tbody></table></body></html>`;
return html;
}
2. 點選下載下傳時下載下傳報表
let html = this.reportHtml(response.data)
var blob = new Blob([html], {type: "application/vnd.ms-excel;charset=utf-8"});
var objectUrl = URL.createObjectURL(blob);
console.log(objectUrl)
var a = document.createElement(\'a\');
document.body.appendChild(a);
a.setAttribute(\'style\', \'display:none\');
a.setAttribute(\'href\', objectUrl);
a.setAttribute(\'download\', \'fileName\');
a.click();
URL.revokeObjectURL(objectUrl);
