前端JS實(shí)現(xiàn)導(dǎo)出excel表格--(可以適用于大量數(shù)據(jù))

前端實(shí)現(xiàn)導(dǎo)出excel表格的方式有好幾種,最近公司有一個(gè)項(xiàng)目要用到這個(gè)功能,最開始百度查到的一些例子導(dǎo)出數(shù)據(jù)都限制在1.5M大小。最終還是在github上面找到了答案。

<html>
<head>
    <meta charset="utf-8">
    <title>js導(dǎo)出excel</title>
    <script src="js/FileSaver.js"></script>
    <script>
    // https://github.com/eligrey/FileSaver.js
    function onDocumentLoad() {
        document.getElementById("export").addEventListener('click',function(){
            var blob = new Blob([document.getElementsByClassName("exportTable")[0].outerHTML], {
                type: "text/plain;charset=utf-8"
            });
            saveAs(blob,  "export.xls");
        })
    }
    document.addEventListener('DOMContentLoaded', onDocumentLoad);
    </script>
</head>
<body>
<button id="export">導(dǎo)出excel</button><br>
<table class="exportTable">
    

這里使用了GitHub上面的找到的一個(gè)FileSaver插件,先使用獲取表格table的HTML代碼(document.getElementsByClassName("exportTable")[0].outerHTML就是獲取到的HTML代碼及文本內(nèi)容),
用前端自帶的new Blob構(gòu)造函數(shù)生成數(shù)據(jù)對象,這里注意type的定義,GitHub上面的type定義我使用時(shí)是亂碼的;
生成的數(shù)據(jù)對象blob傳給FileSaver插件的saveAs方法,"export.xls"是下載時(shí)的文件名稱和格式。這樣就實(shí)現(xiàn)了導(dǎo)出excel表格了。

原demo地址:https://github.com/kebingzao/fileSaver_excel
注意:原demo的Blob的type屬性定義導(dǎo)出的excel文件中的中文文本是亂碼的??!

npm包使用方式:
1、安裝

npm install file-saver --save

2、require引用

var FileSaver = require('file-saver');
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容