ajax获取数据后台数据导出excel
发布时间:2019-08-20编辑:星王
阅读(559)
开发中需求上要导出excel表格,本来是计划用后台去处理,但是迫于分工不同,就用ajax做的获取数据生成excel。
代码如下:
function getTableToExcel() {
//要导出的json数据
var urls = "/admin/statistic/getEscel"
$.ajax({
url: urls,
type: 'get',
data: {},
success: function(info) {
const jsonData = info.rows
//标题
let str = '<tr><td>序号</td><td>企业名称</td><td>注册时间</td><td>注册资金</td><td>企业性质</td><td>法人</td><td>员工人数</td><td>平均工资</td><td>联系人</td><td>电话</td><td>办公地点</td></tr>';
//循环遍历,每行加入tr标签,每个单元格加td标签
for(let i = 0; i < jsonData.length; i++) {
str += '<tr><td>' + (i + 1) + '</td>';
for(let item in jsonData[i]) {
//增加\t为了不让表格显示科学计数法或者其他格式
str += `<td>${ jsonData[i][item] + '\t'}</td>`;
}
str += '</tr>';
}
//Worksheet名
let worksheet = 'Sheet1'
let uri = 'data:application/vnd.ms-excel;base64,';
//下载的表格模板数据
let 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)
},
error: function(err) {
console.log(err)
}
});
}
//输出base64编码
function base64(s) {
return window.btoa(unescape(encodeURIComponent(s)))
}
关键字:
js
其他