1、导出为.csv格局(不兼容ie)

<html><meta charset=utf-8><head></head><body><button onclick='JSONToExcel()'>导出</button><script>    function JSONToExcel(){        // 要导出的json数据,这部分数据能够来自ajax申请        const jsonData = [            {                "name": "常健",                "dept": "挪动研发部",                "id": "1",                "attendance": 10,                "rest": 20            },            {                "name": "陈熙文",                "dept": "挪动研发部",                "id": "2",                "attendance": 20,                "rest": 10            },            {                "name": "迟野",                "dept": "挪动研发部",                "id": "3",                "attendance": 0,                "rest": 30            }        ]        //列题目,逗号隔开        let str = `姓名,部门,id,考勤天数,劳动天数\n`;        //减少\t为了不让表格显示迷信计数法或者其余格局        for(let i = 0; i < jsonData.length; i++){            for(let item in jsonData[i]){                str+=`${jsonData[i][item] + '\t'},`;            }            str+='\n';        }        //encodeURIComponent解决中文乱码, \ufeff是 ""        let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);        //通过创立a标签实现        let link = document.createElement("a");        link.href = uri;        //对下载的文件命名        link.download =  "考勤月度统计.csv";        document.body.appendChild(link);        link.click();        document.body.removeChild(link);    }</script></body></html>

2、导出为.xls格局(不兼容ie firefox)

<html><meta charset=utf-8><head></head><body><button onclick='tableToExcel()'>导出</button><script>    function tableToExcel() {        //要导出的json数据        const jsonData = [            {                "name": "常健",                "dept": "挪动研发部",                "id": "1",                "attendance": 10,                "rest": 20            },            {                "name": "陈熙文",                "dept": "挪动研发部",                "id": "2",                "attendance": 20,                "rest": 10            },            {                "name": "迟野",                "dept": "挪动研发部",                "id": "3",                "attendance": 0,                "rest": 30            }        ]        //列题目        let str = '<tr><td>姓名</td><td>部门</td><td>id</td><td>考勤天数</td><td>劳动天数</td></tr>';        //循环遍历,每行退出tr标签,每个单元格加td标签        for (let i = 0; i < jsonData.length; i++) {            str += '<tr>';            for (let item in jsonData[i]) {                //减少\t为了不让表格显示迷信计数法或者其余格局                str += `<td>${jsonData[i][item]}</td>`;            }            str += '</tr>';        }        let excelHtml = `            <html>                <head>                 <meta charset='utf-8' />                </head>                 <body>                    <table>                      ${str}                    </table>                 </body>            </html>          `        let excelBlob = new Blob([excelHtml], {type: 'application/vnd.ms-excel'})        // 创立一个a标签        let oA = document.createElement('a');        // 利用URL.createObjectURL()办法为a元素生成blob URL        oA.href = URL.createObjectURL(excelBlob);        // 给文件命名        oA.download = '考勤月历统计表.xls';        // 模仿点击        oA.click()    }</script></body></html>