Vue-导出Excel文件

网上总结方法比较零散,现总结下使用方法和遇到的问题:
1,安装依赖
cd到Vue项目目录,执行以下命令

npm install file-saver --save
npm install xlsx --save
npm install script-loader --save-dev

2,将工具文件放入工程,一般为:
src文件下新建文件vendor,将Blob.js和 Export2Excel.js两个文件拖进去,两个文件链接链接: https://pan.baidu.com/s/1cOAfqoOLsU1MK_evof099Q 提取码: yx3k
3,网络上错误的配置:(
更改webpack.base.conf.js配置
在resolve的alias添加:

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

相应的调用方法里面有句调用路径:

const { export_json_to_excel } = require('../../../vendor/Export2Excel');


以上操作一直提示错误../../../src/vendor/Export2Excel in ./node_modules/babel-loader/l...,就是找不到文件路径,还让我改相对路径,永远不正确。

以下是正确配置:
webpack.base.conf.js里边resolve-alias信息不用添加。
修改Export2Excel.js文件(网上下载的两个文件之一),在第二行的位置,做如下修改配置:

require('script-loader!@/vendor/Blob');

这样路径是对的,和webpack.base.conf.js中resolve下alias的

alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}

是对应的。

4,上代码:
script部分:

data(){
return{
list:[
{
name:'韩版设计时尚风衣大',
number:'MPM00112',
salePrice:'¥999.00',
stocknums:3423,
salesnums:3423,
sharenums:3423,
},
{
name:'韩版设计时尚风衣大',
number:'MPM00112',
salePrice:'¥999.00',
stocknums:3423,
salesnums:3423,
sharenums:3423,
},
]
}

methods:{
formatJson(filterVal, jsonData) {
    return jsonData.map(v => filterVal.map(j => v[j]))
  },
export2Excel() {
    require.ensure([], () => {
      const { export_json_to_excel } = require('@/vendor/Export2Excel');
      const tHeader = ['商品名称','商品货号','售价','库存','销量','分享',];
      const filterVal = ['name', 'number', 'salePrice', 'stocknums', 'salesnums', 'sharenums', ];
      const list = this.goodsItems;
      const data = this.formatJson(filterVal, list);
      export_json_to_excel(tHeader, data, '商品管理列表');
    })
  }
}

template:

以上代码摘自网上,但是需要注意路径要做相应修改

const { export_json_to_excel } = require('@/vendor/Export2Excel');

这样文件就可以导出。

5,以上操作完,还是可能会遇到问题

TypeError: webpack_require(...) is not a function

这是因为extract-text-webpack-plugin 插件的使用。安装配置好即可。
安装

npm install extract-text-webpack-plugin --save-dev

使用
webpack.base.conf.js中引入该插件

const ExtractTextPlugin = require("extract-text-webpack-plugin");

在module.exports->module->rules下添加:

{
test: /.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
},

保存即可导出excel文件

你可能感兴趣的:(Vue-导出Excel文件)