导出Excel(兼容各主流浏览器,也可手动设置表头)

导出功能放在后端做事最简单,最高效的。但是不排除某些特殊需求,比如多语言,后端无法做翻译的时候,需要前端先做翻译。实际上就是前端先把数据查询一遍,把数据和表头按语言翻译好之后再做导出功能。说真的,这种做法很low,但是数据混合在一起,后端没法翻译,只能前端来做,如果那位小伙伴有好的解决方案,可以留言告知在下。

插件xlsx.core.min.jsalasql.min.js

使用方法: 引入两个插件后,引入下列代码

 var fileName = '导出的Excel表单名';
 var exportData = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}];
 alasql.promise('SELECT * INTO XLSX(" '+ fileName +'.xls",{headers:true}) FROM ?',[exportData])
    .then(function (data) {
        console.log(data)
    })

调用上述代码之后导出效果如下:
这里写图片描述

设置表头

上述代码也看到了,导出的数据是个数组,表头就是前面的K恶意,只需要将要导出的数据翻译好,归类到相应的表头下,再导出即可实现手动设置表头。

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="./js/libs/alasql.min.js"></script>
    <script src="./js/libs/xlsx.core.min.js"></script>
    <title>导出excel</title>
</head>
<body>
<button onclick="ex()">导出</button>
<script>
    var fileName = '导出的Excel表单名';
    var exportData = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}];
    var newArr = [];
    exportData.forEach( function (value) {
        var singleObj = [];
        singleObj['表头1'] = value.a;
        singleObj['表头2'] = value.b;
        singleObj['表头3'] = value.c;
        newArr.push(singleObj);
    });
    function ex(){
        alasql.promise('SELECT * INTO XLSX(" '+ fileName +'.xls",{headers:true}) FROM ?',[newArr])
            .then(function (data) {
                console.log(data)
            })
    }

</script>
</body>
</html>

效果如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值