js table 导出excel

说明

1.js转excel大致有两种方法:table直接转或者整理出需要的excel数据对象再转,本例子是通过table直接转的。
2.网上的代码粘贴过来后发现没法添加文件后缀,用户体验不好,尝试了一下,将两种方式相结合就可以达到我的目标了。

定义


.factory('Excel', function($window) {
        var uri = 'data:application/vnd.ms-excel;base64,',
            template = '{table}
', base64 = function(s) { return $window.btoa(unescape(encodeURIComponent(s))); }, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }; return { tableToExcel: function(table, name) { if(!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML } //var blob = new Blob([data], {type: "application/vnd.ms-excel"}); var objectUrl = uri + base64(format(template, ctx)); var a = document.createElement('a'); document.body.appendChild(a); a.setAttribute('style', 'display:none'); a.setAttribute('href', objectUrl); a.setAttribute('download', name); a.click(); URL.revokeObjectURL(objectUrl); } } })

调用


Excel.tableToExcel(tableId, fileName);

你可能感兴趣的:(js table 导出excel)