Element-ui組件庫Table表格導(dǎo)出Excel表格

實現(xiàn)效果

頁面截圖

點擊“點擊導(dǎo)出”按鈕后下載sheetjs.xlsx文件(導(dǎo)出文件)

sheetjs.xlsx文件截圖

Element組件庫中的el-table表格導(dǎo)出需要的主要是兩個依賴:(xlsx 和 file-saver)

  • 安裝

    npm install --save xlsx file-saver
    
  • 兩個插件的詳細地址在下面

https://github.com/SheetJS/js-xlsx
https://github.com/eligrey/FileSaver.js

代碼部分(有注釋解釋說明)

    <template>
    <div class="table">
        <!--給表格添加一個id,導(dǎo)出文件事件需要使用-->
        <el-table
        :data="tableData"
        border
        style="width: 100%"
        id="out-table"
        >
        <el-table-column
            prop="date"
            label="日期"
            width="180"
        >
        </el-table-column>
        <el-table-column
            prop="name"
            label="姓名"
            width="180"
        >
        </el-table-column>
        <el-table-column
            prop="address"
            label="地址"
        >
        </el-table-column>
        </el-table>
        <!--給按鈕綁定事件-->
        <button @click="exportExcel">點擊導(dǎo)出</button>
    </div>
    </template>

    <script>
    // 引入導(dǎo)出Excel表格依賴
    import FileSaver from "file-saver";
    import XLSX from "xlsx";

    export default {
    name: "javascriptthree",
    data() {
        return {
        tableData: [
            {
            date: "2016-05-02",
            name: "王小虎",
            address: "上海市普陀區(qū)金沙江路 1518 弄"
            },
            {
            date: "2016-05-04",
            name: "王小虎",
            address: "上海市普陀區(qū)金沙江路 1517 弄"
            },
            {
            date: "2016-05-01",
            name: "王小虎",
            address: "上海市普陀區(qū)金沙江路 1519 弄"
            },
            {
            date: "2016-05-03",
            name: "王小虎",
            address: "上海市普陀區(qū)金沙江路 1516 弄"
            }
        ]
        };
    },
    mounted() {},
    methods: {
        //定義導(dǎo)出Excel表格事件
        exportExcel() {
        /* 從表生成工作簿對象 */
        var wb = XLSX.utils.table_to_book(document.querySelector("#out-table"));
        /* 獲取二進制字符串作為輸出 */
        var wbout = XLSX.write(wb, {
            bookType: "xlsx",
            bookSST: true,
            type: "array"
        });
        try {
            FileSaver.saveAs(
            //Blob 對象表示一個不可變、原始數(shù)據(jù)的類文件對象。
            //Blob 表示的不一定是JavaScript原生格式的數(shù)據(jù)。
            //File 接口基于Blob,繼承了 blob 的功能并將其擴展使其支持用戶系統(tǒng)上的文件。
            //返回一個新創(chuàng)建的 Blob 對象,其內(nèi)容由參數(shù)中給定的數(shù)組串聯(lián)組成。
            new Blob([wbout], { type: "application/octet-stream" }),
            //設(shè)置導(dǎo)出文件名稱
            "sheetjs.xlsx"
            );
        } catch (e) {
            if (typeof console !== "undefined") console.log(e, wbout);
        }
        return wbout;
        }
    }
    };
    </script>

    <style scoped>
    .table {
    width: 100%;
    height: 300px;
    }
    </style>

如果數(shù)據(jù)中帶有‘100%’等數(shù)據(jù),不想被處理為小數(shù),加{raw:true}即可

     var wb = XLSX.utils.table_to_book(document.querySelector("#out-table"),{raw:true});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1.首先,先引入三個依賴包,這個是必不可少的 **最好使用cnpm下載,因為我之前試了好久,不使用cnpm,根...
    候鳥與暖風(fēng)閱讀 9,962評論 1 5
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,566評論 1 9
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,837評論 2 45
  • 姓名:鄭文華 公司:寧波大發(fā)化纖有限公司 《六項精進》289期學(xué)員 【日精進打卡第10天】 【知~學(xué)習(xí)】 《六項精...
    13c78e1e6538閱讀 211評論 0 0
  • 晚時的眸 垂下眼瞼 把一切喧攘 做成安撫的息眠 夕陽的余輝 獻盡最后一絲光線 光明似受了摧殘 衰弱的生機 呻吟殘喘...
    一池凹水凸龍閱讀 185評論 2 7

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