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


    安装
    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=" 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 {
    100%;
    height: 300px;
    }
    </style>

  • 相关阅读:
    Google Chrome 自定义协议(PROTOCOL)问题的处理
    C# 6.0/7.0 的新特性
    MySQL 5.7.18 压缩包版配置记录
    nginx.conf文件内容详解
    博客添加动态动漫妹子
    TypeScript 3.8beta版
    微信浏览器H5开发常见的坑
    Babel7知识梳理
    雅虎前端优化35条规则
    webpack
  • 原文地址:https://www.cnblogs.com/hellofangfang/p/10929770.html
Copyright © 2020-2023  润新知