天天看点

vue 导出excel表格

对于涉及到数据比较多的管理后台导出excel 表格这个需求就非常的常见了

  所以?

    vue 怎么到处excel表格的?

    有两种办法

    1:请求接口后台直接给你的是excel文件,你需要做的就是怎么接收excel 表格,

    2:就是请求后台接口给你返回的json数据,你需要生成excel表格,然后导出来,

    在这里我讲一下第二种办法

  废话不说直接教程:

    一:需要安装依赖:

      npm install -S file-saver xlsx

      npm install -D script-loader

    二:引入两个js

      Blob.js和 Export2Excel.js。

      可以新建一个文件夹,放进去   

      

vue 导出excel表格

      Blob.js和 Export2Excel.js文件:链接: http://pan.baidu.com/s/1nvSdw85 密码: 5qhi

    三:需要两个方法

      export2Excel() {

      require.ensure([], () => {

        const { export_json_to_excel } = require('../../vendor/Export2Excel');    ---require 括号里面是相对路径其实是引用  Export2Excel.js

        const tHeader = ['序号', 'IMSI', 'MSISDN', '证件号码', '姓名'];     ----tHeader 数组里面放的是字段的对应名

        const filterVal = ['ID', 'imsi', 'msisdn', 'address', 'name'];   -----filterVal  字段对应的值

        const list = this.tableData;                                                        ----对应的json数组

        const data = this.formatJson(filterVal, list);

        export_json_to_excel(tHeader, data, '列表excel');

      })

    },

    formatJson(filterVal, jsonData) {

      return jsonData.map(v => filterVal.map(j => v[j]))

    }

    四:按钮导出 调用 export2Excel方法

    

    注:如果webpack报解析错误:

      在build----webpack.base.conf.js中resolve的alias加入 'vendor': path.resolve(__dirname, '../src/vendor'),

      即可解决

      alias是配置别名

    还有一个问题:就是

vue 导出excel表格

    上述有个Export2Excel.js它引用了 Blob.js 所以你要把那个 require( )的路径改成相对路径;完了再调用方法就可以了如下图:

vue 导出excel表格

   

      注意:不要忘记引用这两个js,因为你要用人家的控件就要先引入才能用哦!!在入口文件main.js或者在组件里面单独引用都可以,我是直接在main.js引用的;

vue 导出excel表格

       参考文献:http://www.cnblogs.com/Mrfan217/p/6944238.html