需求:从数据库中获取到想要的内容,然后导出为excel格式文档 直接上代码:(这里忽略数据库获取部分,直接将json内容导出为excel格式。)
<head>
<div>导出xls文件
<button onclick='TableToExcel()'>导出</button></div>
</head>
<body>
<script>
//以Table格式导为xls文件
function TableToExcel(){
//要导出的json数据
var jsonData = [
{
name:'张三',
classid:'二年级',
age:'10'
},
{
name:'来之前',
classid:'二年级',
age:'9'
},
{
name:'李四',
classid:'二年级',
age:'10'
},
{
name:'王五',
classid:'六年级',
age:'13'
}
]
var str = '<tr><td>姓名</td><td>年级</td><td>价格</td></tr>';
//具体数值 遍历
for(let i = 0;i < jsonData.length;i++){
str += '<tr>';
for(let item in jsonData[i]){
var cellvalue = jsonData[i][item];
str+=`<td style="mso-number-format:'\@';">${cellvalue}</td>`;
}
str+='</tr>';
}
var worksheet = '导出结果'
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="">
<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>`;
function base64 (s) { return window.btoa(unescape(encodeURIComponent(s)))}
window.location.href = uri + base64(template);
}
</script>
</body>
</html>