Home  >  Article  >  Web Front-end  >  Code example of JavaScript exporting to Excel

Code example of JavaScript exporting to Excel

不言
不言forward
2018-11-23 15:24:252363browse

This article brings you code examples about JavaScript exporting to Excel. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

<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);
    }

Calling method

downloadXLSById(idName,fileName);
idName: the id value of the superior p of the table
fileName: saved file name

The above is the detailed content of Code example of JavaScript exporting to Excel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete