美文网首页
Element-ui组件库Table表格导出Excel表格

Element-ui组件库Table表格导出Excel表格

作者: nomooo | 来源:发表于2019-01-03 23:49 被阅读0次

    实现效果

    页面截图

    点击“点击导出”按钮后下载sheetjs.xlsx文件(导出文件)

    sheetjs.xlsx文件截图

    Element组件库中的el-table表格导出需要的主要是两个依赖:(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,导出文件事件需要使用-->
            <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">点击导出</button>
        </div>
        </template>
    
        <script>
        // 引入导出Excel表格依赖
        import FileSaver from "file-saver";
        import XLSX from "xlsx";
    
        export default {
        name: "javascriptthree",
        data() {
            return {
            tableData: [
                {
                date: "2016-05-02",
                name: "王小虎",
                address: "上海市普陀区金沙江路 1518 弄"
                },
                {
                date: "2016-05-04",
                name: "王小虎",
                address: "上海市普陀区金沙江路 1517 弄"
                },
                {
                date: "2016-05-01",
                name: "王小虎",
                address: "上海市普陀区金沙江路 1519 弄"
                },
                {
                date: "2016-05-03",
                name: "王小虎",
                address: "上海市普陀区金沙江路 1516 弄"
                }
            ]
            };
        },
        mounted() {},
        methods: {
            //定义导出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 对象表示一个不可变、原始数据的类文件对象。
                //Blob 表示的不一定是JavaScript原生格式的数据。
                //File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
                //返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。
                new Blob([wbout], { type: "application/octet-stream" }),
                //设置导出文件名称
                "sheetjs.xlsx"
                );
            } catch (e) {
                if (typeof console !== "undefined") console.log(e, wbout);
            }
            return wbout;
            }
        }
        };
        </script>
    
        <style scoped>
        .table {
        width: 100%;
        height: 300px;
        }
        </style>
    

    相关文章

      网友评论

          本文标题:Element-ui组件库Table表格导出Excel表格

          本文链接:https://www.haomeiwen.com/subject/jfecrqtx.html