vue点击导出文件实现功能。

效果图:
在这里插入图片描述
在这里插入图片描述

1.下载插件

			npm install --save xlsx file-saver
			// 加载script 需要
			npm install script-loader -S -D
            npm install xlsx-populate 

在这里插入图片描述
2.使用方法

<div class="hello" id="app">
<button @click="exportExcle">导出</button>
</div>
methods:{
 exportExcle(){
      console.log('导出文件内容');
      // console.log(exportList);
       let sourceOriginAmount = [
                {   
                    scoreName:'李四',
                    goodsName: '华西',
                    sourceCode: '销售打分',
                    defenScore:'王某',
                    deFen:'20',
                    data:'2022-06-12',
                    hangye:'销售',
                    fuwuContent:'销售打分',
                    dataTime:'2022-06-14',
                },
                {
                    scoreName:'张三',
                    goodsName: '海通',
                    sourceCode: '券商整体服务',
                    defenScore:'李某',
                    deFen:'30',
                    data:'2022-06-12',
                    hangye:'化工',
                    fuwuContent:'整体服务',
                    dataTime:'2022-06-14',
                },
                      {   
                    scoreName:'李四',
                    goodsName: '华西',
                    sourceCode: '销售打分',
                    defenScore:'王某',
                    deFen:'20',
                    data:'2022-06-12',
                    hangye:'销售',
                    fuwuContent:'销售打分',
                    dataTime:'2022-06-14',
                },
                {
                    scoreName:'张三',
                    goodsName: '海通',
                    sourceCode: '券商整体服务',
                    defenScore:'李某',
                    deFen:'30',
                    data:'2022-06-12',
                    hangye:'化工',
                    fuwuContent:'整体服务',
                    dataTime:'2022-06-14',
                },
                      {   
                    scoreName:'李四',
                    goodsName: '华西',
                    sourceCode: '销售打分',
                    defenScore:'王某',
                    deFen:'20',
                    data:'2022-06-12',
                    hangye:'销售',
                    fuwuContent:'销售打分',
                    dataTime:'2022-06-14',
                },
                {
                    scoreName:'张三',
                    goodsName: '海通',
                    sourceCode: '券商整体服务',
                    defenScore:'李某',
                    deFen:'30',
                    data:'2022-06-12',
                    hangye:'化工',
                    fuwuContent:'整体服务',
                    dataTime:'2022-06-14',
                }
        ]; // 需要导出的数据,可以动态获取
        
    this.loading = true; // 设置一个loading,生成Excel需要时间
    import('@/vendor/Export2Excel.js').then(excel => { // 导入js模块
    const tHeader = ['打分人', '券商', '服务类型','得分人','得分','时间','行业','服务内容','打分时间']; // 导出excel 的标题
    const filterVal = ['index', 'goodsName', 'sourceCode','defenScore','deFen','data','hangye','fuwuContent','dataTime']; // 每个标题对应的字段
    const list = (sourceOriginAmount || []).map((item, key) => { // 通过 map 方法遍历,组装数据成上面的格式
    console.log(item,'每一项内容是');
             
              return {
                  index: item.scoreName,
                  goodsName: item.goodsName,
                  sourceCode: item.sourceCode,
                  defenScore: item.defenScore,
                  deFen: item.deFen,
                  data: item.data,
                  hangye: item.hangye,
                  fuwuContent: item.fuwuContent,
                  dataTime: item.dataTime,
                }
            });
     
      if (list) {
        const data = this.formatJson(filterVal, list); // 生成json数据
        excel.export_json_to_excel({ // 调用excel方法生成表格
                  header: tHeader,
                  data,
                  filename: this.goodsName
        });

      }else {
        alert('暂无无数据');
      }
      this.loading = false;
    })
    },
    //调用方法
    formatJson (filterVal, jsonData) {
      return jsonData.map(v => filterVal.map(j => v[j]));
    },
}

return:{
loading: false,//默认
}

总计:导出的excel样式可以自己整改,项目需求的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值