欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

JavaScript导出Excel的代码示例

程序员文章站 2022-04-18 07:55:35
...
本篇文章给大家带来的内容是关于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的代码示例的详细内容,更多请关注其它相关文章!

相关标签: xlsx javascript