HTML部分
<button onclick='importBtn()'>导出</button>
JS部分
const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
importBtn = () => {
// 导出获取Excel
const jsonData = [{//首行标题
data1: '床位名称',
data2: '床位代码',
data3: '床位外部代码',
data4: '所属科室代码',
data5: '所属病区代码',
data6: '所属病房代码',
data7: '管床医生工号',
data8: '管床护士工号',
data9: '排序',
data10: '是否启用(1:启用;0:不启用)',
data11: '备注',
}, {//写死一段数据
data1: '床位1',
data2: '4001',
data3: '4001',
data4: '1001',
data5: '2001',
data6: '3001',
data7: '',
data8: '',
data9: '1',
data10: '1',
data11: '无',
},]
//列标题,逗号隔开,每一个逗号就是隔开一个单元格
let str = `<span style="color: #FF5A6A;font-size: 25px;">注意:红色字段为必填,</span><span style="font-size: 25px;">此行保留不可删除</span>\n</tr>`
// 增加\t为了不让表格显示科学计数法或者其他格式
for (let i = 0; i < jsonData.length; i++) {
for (const key in jsonData[i]) {
if (i == 0 && (key == 'data1' || key == 'data2' || key == 'data10')) {
str += `<td style="color: #FF5A6A; ">${jsonData[i][key] + '\t'}</td>`
} else {
str += `<td style=""width: 110px; ">${jsonData[i][key] + '\t'}</td>`
}
}
str += '\n' + '</tr>';
}
const 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>${'Sheet1'}</x:Name>
<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head><body><table>${str}</table></body></html>`;
// encodeURIComponent解决中文乱码
const uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(template);
// 通过创建a标签实现
const link = document.createElement("a");
link.href = uri;
// 对下载的文件命名
link.download = "床位导入模板.xlsx";
link.click();
}