首页 > 其他分享 >记录--Vue中如何导出excel表格

记录--Vue中如何导出excel表格

时间:2023-05-20 14:44:13浏览次数:38  
标签:rating Vue name -- excel 导出 value id

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

一、导出静态数据

1、安装 vue-json-excel

npm i vue-json-excel

注意,此插件对node有版本要求,安装失败检查一下报错是否由于node版本造成!

2、引入并注册组件(以全局为例)

import Vue from "vue";
import JsonExcel from "vue-json-excel"; //引入excel插件
Vue.component("downloadExcel", JsonExcel);//注册

3、使用

在template节点下使用download-excel标签即可

    <download-excel class="downloadExcel" :data="dataAttr" types="xls" :fields="fields" :name="exportName"
      :worksheet="exportSheet" :header="exportName" :footer="exportFooter" :defaultValue="exportDefaultValue">
      <el-button type="success">导出</el-button>   //可以无需button
    </download-excel>

在data节点下定义数据

dataAttr: [
        {
          id: 1,
          name: '九转大肠',
          price: 999,
          sellCount: 6,
          rating: 100
        }],
      fields: { // 数据名称及对应的值
        编号: 'id',
        名称: 'name',
        价格: 'price',
        销量: 'sellCount',
        好评率: {
          field: 'rating',
          callback: value => `${value}%` // 以对象方式可以对数据做处理
        }
      },
      exportName: '这是表格名称',
      exportSheet: '这是表格sheet的名称',
      exportHeader: '这是表格的标题',
      exportFooter: '这是表格的页脚',
      exportDefaultValue: '这是一个默认的数据'

点击导出

二、导出动态数据

如果需要在点击按钮前动态的获取数据,则需要使用fetch属性来指定一个参数。

注意,使用此参数时不能再绑定data参数

以导出一个外卖商品列表为例: 

1、为fetch属性绑定了一个回调。

    <download-excel class="downloadExcel" :fetch="getDataAttr" types="xls" :fields="fields" :name="exportName"
      :worksheet="exportSheet" :header="exportName" :footer="exportFooter" :defaultValue="exportDefaultValue">
      <el-button type="success">导出{{ exportName }}</el-button>
    </download-excel>

2、在methods节点下定义方法

getDataAttr() {
      const dataAttr = []     //定义导出数据
      this.goodsList.forEach((value) => {   //进行数据处理
        let dataAttrItem = new createExcleData(value.id, value.name, value.price,  value.sellCount, value.rating) 
         //使用引入的createExcleData
        dataAttr.push(dataAttrItem) //为导出的数据数组添加数据
      })
      return dataAttr //数据整理完毕
    },

3、新建一个js文件封装一个类创建每条数据

export default class DataAttr {
  constructor(id, name, price, sellCount, rating) {
    this.id = id;
    this.name = name,
    this.price = price,
    this.sellCount = sellCount,
    this.rating = rating;
  }
}

4、在组件下引入,然后就可以使用了

import createExcleData from '@/utils/createExcleData' 

goodsList数据如下

点击导出,打开导出文件

本文转载于:

https://juejin.cn/post/7204742703506522171

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

标签:rating,Vue,name,--,excel,导出,value,id
From: https://www.cnblogs.com/smileZAZ/p/17417204.html

相关文章

  • APP-PER-5002: Oracle 人力资源管理系统无法检索用户类型配置文件选项的值。
    打开设置“职位层次结构"窗体时提示错误:APP-PER-5002:Oracle 人力资源管理系统无法检索用户类型配置文件选项的值。请确保为您的责任正确设置此值。解决方式:为该职责(例如职责全称:PO_超级管理员(CUX)) 设置配置文件(路径:SYSTEMADMINISTRATOR>> 配置文件>>系统。)。 ......
  • Typora语法大全(包含数学公式)
    一、Markdown基本语法  标题 #一级标题(快捷键Ctrl+1) ##二阶标题(快捷键Ctrl+2) ###三阶标题(快捷键Ctrl+3) ####四阶标题(快捷键Ctrl+4) #####五阶标题(快捷键Ctrl+5) ######六阶标题(快捷键Ctrl+6) 如何生成目录  @[TOC]目录 在文章开始地方输入[t......
  • ECPS 208 Control Systems控制系统
    ECPS208:ControlSystemsforCyberPhysicalSystemsHomeworkAssignmentNumber4HigherDimensionalQuadcopter-TrajectoryControlSpring2023Considerthecaseofa2Dquadcopter.Wewouldliketocontrolthequadcopterforavarietyof2Dtrajectories(in......
  • Spring Boot |如何让你的 bean 在其他 bean 之前完成加载
    本文围绕SpringBoot中如何让你的bean在其他bean之前完成加载展开讨论。问题今天有个小伙伴给我出了一个难题:在SpringBoot中如何让自己的某个指定的Bean在其他Bean前完成被Spring加载?我听到这个问题的第一反应是,为什么会有这样奇怪的需求?Talkischeap,sho......
  • 中国电信app点评
    首先从用户界面的角度上,中国电信app十分不友好,十分杂乱,用户难以快速找到想要的业务  而且用该aap办理套餐时会跳出许多的升级套餐和绑定套餐,属于是短期刺激,一味地推销业务,而不考虑用户体验从用户使用的方面来讲,该app对于套餐的变更和退订根本无法完成,必须要通过人工客服来......
  • 程序中报 未注册类的错误
    未注册类原因是程序中使用了第三方的组成,这里使用的微软office的组件,但没有向系统注册导致出现的框架报的异常。错误信息引用信息应用处理方法找到注册该类的批处理命令,向系统注册相关的信息。批处理命令的内容......
  • 推荐AVIF图片格式转换器
    推荐一个可以把图片转换成AVIF格式的命令行软件。exe文件下载地址,选择avifenc.exe(即AVIF编码器)下载,即可把图片转换为AVIF格式,从而节省大量空间。其中avifdec.exe是AVIF解码器,用于把AVIF格式转换为其他格式。其中zip文件是用于Windows下编译的源码。源代码地址:AOMediaCodec/libav......
  • 题目奶酪单
    Manacher模板:LuoguP3805反演:LuoguP3279总结......
  • 基于奇异值分解的点云配准RT计算原理
    问题描述假设在\(d\)维空间\(\mathbb{R}^d\)中,存在两个对应点集合\(P=\left\{{{{\mathbf{p}}_1},{{\mathbf{p}}_2},\cdots,{{\mathbf{p}}_n}}\right\}\),\(Q=\left\{{{{\mathbf{q}}_1},{{\mathbf{q}}_2},\cdots,{{\mathbf{q}}_n}}\right\}\),其中\(......
  • 凄凉的世界。-- THUSC2023 游记
    ChangeLog:2023.05.20开坑。2023.05.20基本完稿。书接上回.其实不太想写的。但是还是写一下吧。试机。第一题我用3min就过掉了,比较简单(大雾)。第二题我磕了半天,最后写了个64pts的做法。出来一看发现四个橘子写了100+100+5,好猛。然后摆了一上午,Day1开始......