Vue实现在前端导出Excel 方法1

也可以去看我的方法2:https://www.cnblogs.com/yingyigongzi/p/10915403.html

-------------------------------------------------------------------------------------

参考1:http://www.pianshen.com/article/613969950/

参考2:https://www.cnblogs.com/Mrfan217/p/6944238.html

npm安装:

cnpm install -S file-saver xlsx
cnpm install -D script-loader

下载所需的两个文件:Blob.js、Export2Excel.js

https://download.csdn.net/download/badao_liumang_qizhi/10767801

或者:

https://gitee.com/BenDanXianSheng/excel_relyon.git

新建vendor,名称不一定非是vendor,建议但不非得将此目录放在与单页面同级的目录。将上面两个js文件放在vendor目录中。

比如:我自己在src下的assets下自己新建了一个文件夹vendor,把Blob.js、Export2Excel.js放入其中

然后

修改配置文件

在项目目录下的build下的 webpack.base.conf.js这个webpack的配置文件中的

resolve的alias中加入:

'vendor':path.resolve(__dirname,'../src/account/vendor'),

 具体路径根据实际而写,这里是按照我的方式写的路径。

实现代码

点击导出按钮

<template>
    <div>
       <Button type="success" @click="export2Excel">Success</Button>
    </div>
</template>
<script>
// 参考:https://www.cnblogs.com/Mrfan217/p/6944238.html
export default {
    name:'',
    data () {
        return {
        }
    },
    methods: {
      export2Excel() {
        require.ensure([], () => {
          const { export_json_to_excel } = require('vendor/Export2Excel');
          const tHeader =
            [
            '编号', '标题', '作者','回顾', '时间'    
            ];
          const filterVal =
            ['id', 'title','author','pageviews','display_time'];  
           const list =
           [
             {id: 1, title: 2, author: 3, pageviews: 4, display_time: 5},
             {id: 6, title: 7, author: 8, pageviews: 9, display_time: 10},
             {id: 11, title: 12, author: 13, pageviews: 14, display_time: 15},
            ];
          const data = this.formatJson(filterVal, list);       
          export_json_to_excel(tHeader, data, '**账单报表');
        })
      },
      formatJson(filterVal, jsonData) {
        return jsonData.map(v => filterVal.map(j => v[j]))
    }
    },
    computed:{

    },

}
</script>
<style scoped>

</style>
原文地址:https://www.cnblogs.com/yingyigongzi/p/10915382.html