博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js导出excel
阅读量:6434 次
发布时间:2019-06-23

本文共 2261 字,大约阅读时间需要 7 分钟。

    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 的上级div的 id值
fileName : 保存的文件名称

转载地址:http://aexga.baihongyu.com/

你可能感兴趣的文章
Centos6.5下安装protobuf及简单使用
查看>>
[SharePoint] SharePoint 错误集 3
查看>>
高压光耦
查看>>
[转]DPM2012系列之六:在Win7上安装DPM远程管理控制台
查看>>
postgres函数
查看>>
Microsoft AJAX Library Cheat Sheet(5): Number和Error类型的扩展
查看>>
AfxGetMainWnd函数
查看>>
WebView增加一个水平Progress,位置、长相随意
查看>>
easyui messager alert 三秒后自动关闭提示
查看>>
core data 基础操作
查看>>
ORM框架Hibernate (四) 一对一单向、双向关联映射
查看>>
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>