JavaScript如何导出Excel

发布时间:2020-12-07 14:03:26 作者:小新
来源:亿速云 阅读:151

小编给大家分享一下JavaScript如何导出Excel,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

<script src="https://lib.baomitu.com/jquery/3.3.1/jquery.min.js">
</script>
<script crossorigin="anonymous" integrity="sha384-m/TzZt0ykrLNcWKIbWS5Ki26N6AvwYe1BnqHriftAK8tohV7lhiLyXwUI3C8YdOD" src="https://lib.baomitu.com/xlsx/0.14.1/xlsx.full.min.js">
</script>
function saveAs(obj, fileName) {//当然可以自定义简单的下载文件实现方式
        var tmpa = document.createElement("a");
        tmpa.download = fileName || "下载";
        tmpa.href = URL.createObjectURL(obj); //绑定a标签
        tmpa.click(); //模拟点击实现下载
        setTimeout(function () { //延时释放
            URL.revokeObjectURL(obj); //用URL.revokeObjectURL()来释放这个object URL
        }, 100);
    }
    const wopts = { bookType: 'xlsx', bookSST: false, type: 'binary' };//这里的数据是用来定义导出的格式类型
    // const wopts = { bookType: 'csv', bookSST: false, type: 'binary' };//ods格式
    // const wopts = { bookType: 'ods', bookSST: false, type: 'binary' };//ods格式
    // const wopts = { bookType: 'xlsb', bookSST: false, type: 'binary' };//xlsb格式
    // const wopts = { bookType: 'fods', bookSST: false, type: 'binary' };//fods格式
    // const wopts = { bookType: 'biff2', bookSST: false, type: 'binary' };//xls格式

    function downloadExl(data, name) {
        const wb = { SheetNames: ['Sheet1'], Sheets: {}, Props: {} };
        wb.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(data);//通过json_to_sheet转成单页(Sheet)数据
        saveAs(new Blob([s2ab(XLSX.write(wb, wopts))], { type: "application/octet-stream" }), name + '.' + (wopts.bookType=="biff2"?"xls":wopts.bookType));
    }
    function s2ab(s) {
        if (typeof ArrayBuffer !== 'undefined') {
            var buf = new ArrayBuffer(s.length);
            var view = new Uint8Array(buf);
            for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
            return buf;
        } else {
            var buf = new Array(s.length);
            for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;
            return buf;
        }
    }
    function downloadXLSById(idName,fileName){
        var title = new Array();

        $(`#${idName} table thead tr th`).each(function(i,v){
            title.push(v.textContent);
        });

        var jsonData = [];
        $("#"+idName+" table tbody tr").each(function(i,v){
            var data = {};
            v.childNodes.forEach(function(value,index){
                data[title[index]] = $.trim(value.textContent);
            });
            jsonData.push(data);
        });
        downloadExl(jsonData,fileName);
    }

调用方式

downloadXLSById(idName,fileName);
idName : table 的上级p的 id值
fileName : 保存的文件名称

看完了这篇文章,相信你对JavaScript如何导出Excel有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. delphi 导出excel
  2. 如何使用JavaScript导入和导出Excel文件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

excel javascript avascript

上一篇:JavaScript中BOM的示例分析

下一篇:Vue2.0中组件的继承与扩展是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》