vue-json-excel前端导出excel教程

发布于:2023-04-27 ⋅ 阅读:(1739) ⋅ 点赞:(1)

vue-json-excel是一个专门为解决前端导出Excel而开发的一个组件库。

个人认为,导出在前端做,不是特别合适,最好是后端提供导出下载文件接口,如果后端确实不想提供接口,要让你做前端导出,那么不妨试试这个组件。

目录

一、安装依赖

二、引入配置

三、组件属性说明

四、导出HTML代码

五、导出逻辑代码

六、最终导出结果展示 

七、使用该组件需要注意的点


一、安装依赖

npm install vue-json-excel

二、引入配置

import Vue from "vue";
import JsonExcel from "vue-json-excel";

Vue.component("downloadExcel", JsonExcel);

三、组件属性说明

四、导出HTML代码

<div style="float: right; padding-right: 4px; margin-bottom: 30px"> 
   <download-excel class="export-excel-wrapper1" :fields="json_fields" title="导出各单位统计数据" :data="json_data" :name="dwtjsjName" :before-generate="startDownload"> 
    <el-button size="mini" style="right: 140px; position: absolute">
     导出各单位统计数据
    </el-button> 
   </download-excel> 
  </div>

五、导出逻辑代码

<script>
    export default {
    name: "name",
    data() {
      return {
        json_fields: {
          序号: "ID",
          学校: "yyname",
          刷卡人数: "total",
          绿码人数: "greenNum",
          黄码人数: "yellowNum",
          红码人数: "redNum",
          未接种数: "ymzzNoNum",
          已接种数: "ymzzIsNum",
          开始时间: "startDate",
          结束时间: "endDate",
        },
        json_data: [], //导出表格数据
        dwtjsjName: "",
      };
    },

    methods: {
      async startDownload() {
        this.$modal.msgSuccess("文件正在下载中,请稍后...");
        this.dwtjsjName = "各单位统计数据.xls";
        await queryHealthCountData(data).then((response) => {
          let res = response.data;
          console.log(res);
          for (var i = 0; i < res.length; i++) {
            res[i].ID = i + 1;
          }
          this.json_data = res;
          return res;
        });
      }
    },
  };
  </script>

六、最终导出结果展示 

 七、使用该组件需要注意的点

总体来说,组件用法还是蛮简单的,如果需要动态加载数据然后导出,这里一般需要先调用接口获取数据,这里需要注意的地方就是,使用before-generate回调函数进行下载前的数据加载,这里调用的方法需要进行异步处理(async....await),否则下载的数据会是一个空Excel。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到