首页 > 其他分享 >vue 简易导出数据 vue-json-excel

vue 简易导出数据 vue-json-excel

时间:2024-05-13 11:10:29浏览次数:26  
标签:vue excel param item json tableData

1、安装插件 

npm install -S vue-json-excel

2、注册
import Vue from "vue";
import JsonExcel from "vue-json-excel";

Vue.component("downloadExcel", JsonExcel);

3、使用
      <a-button v-if="isExport" type="primary" @click="exportData">
        导出数据
    </a-button>
    <a-button type="primary" v-else>
       <download-excel
          :data="tableData"
          :fields="jsonFields"
      :before-generate= "startDownload"
      :before-finish= "finishDownload"
      name="标准部门库">
      导出数据
    </download-excel> </a-button>


const jsonFields = {
"序号": "type",
"部门编码": "dept_code",
"部门名称": "leadername",
"主管领导": "third_fun",
"功能定位": "function"
}


import downloadexcel from "vue-json-excel";
import axios from 'axios';

export default {
  name: "App",
  components: {
      downloadexcel,
  },
  data(){
      return {
      isExport:false,  // 数据为空时,不允许导出
      jsonFields,
      tableData: []
     }
},
  methods:{
    /**
     * 查询数据
    */
    getData(param) {
    this.loading = true
    Object.keys(param).forEach(item => {
    if (param[item] === null || param[item] === "" || param[item] === undefined) {
    delete param[item]
    }
    })
    queryDeptfunList(param).then(res => {
     this.loading = false
     this.tableData = res.data.records
     if (this.tableData.length > 0) {
        // 添加序列
    for (let i in this.tableData) {
     this.tableData[i].type = parseInt(i) + 1
    }
     this.isExport = false
     } else {
     this.isExport = true
     }
    })
    },
    startDownload(){
          this.loading = true
      },
      finishDownload(){
      this.loading = true
    }
  }
 }
</script>

 


标签:vue,excel,param,item,json,tableData
From: https://www.cnblogs.com/sundayRain/p/18188788

相关文章

  • 生命周期---Vue2&Vue3
    生命周期---Vue2&Vue3简单理解为:组件从创建到被销毁的一个过程,就相当于人的一生,从出生到死亡的一个过程。组件的生命周期也称生命周期、生命周期函数、生命周期钩子生命周期在特定的时刻会调用特定的函数生命周期分为四个阶段,每个阶段都有两个钩子,现只讨论这八个钩子V......
  • 厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中
    一、写在开头我们在上一篇文章中提到了通过EasyExcel处理Mysql百万数据的导入功能(一键看原文),当时我们经过测试数据的反复测验,100万条放在excel中的数据,4个字段的情况下,导入数据库,平均耗时500秒,这对于我们来说肯定难以接受,今天我们就来做一次性能优化。二、性能瓶颈分析一般的......
  • Vue.js的Vue@Cli入门指南
    Vue.js是一款流行的JavaScript框架,它使得构建交互式的Web界面变得简单和快捷。Vue@Cli是Vue.js官方提供的脚手架工具,它能够帮助我们快速搭建Vue.js项目,并提供了丰富的功能和插件。准备工作在开始之前,确保您已经安装了node.js和npm。然后,您可以通过以下命令安装Vue@Cli:npminsta......
  • 浅谈Vue.js与原生开发
    在现代的Web开发中,前端框架的选择是至关重要的。Vue.js作为一款流行的前端框架,与传统的原生开发相比,有许多明显的区别。模版语法与HTMLVue.js使用特殊的模板语法来创建动态视图,这样开发者可以更方便地表达复杂的逻辑。通过指令(例如v-if、v-for等)和模板表达式,Vue.js简化了数据的......
  • 【vue3入门】-【22】 插槽
    插槽-基本使用方式我们已经了解了组件能够接收任意类型的JavaScript值作为props,但是组件要如何接收模版内容呢?在某些场景中,我们可能想要为子组件传递一些模版片段,让子组件在他们的组件中渲染这些片段。最基本的使用方式app.vue<template><!--单标签就是仅应用当前组件-->......
  • vue绑定对象,绑定的值不改变的问题
    在使用vue结合elmentui的table组件,对数组绑定,需要编辑数组里一些属性的值。我的情况是,需要在打开这个表时,根据条件插入一些对象到table里,经测试,到这里是没问题的,可以显示新插入的对象。问题在于,当我改变这些新插入对象的count字段时,发现输入数字,输入框的数字并没有改变,而在不是新......
  • Vue3笔记
    1.man.js文件//引入一个工厂函数createAppimport{createApp}from'vue'importAppfrom'./App.vue'//创建应用实例对象app---类似于vue2中的vm,但app比vm更'轻'constapp=createApp(App)console.log('app',app)app.mount('#app......
  • Vue项目中有封装过axios吗?主要是封装哪方面的?
    一、axios是什么axios 是一个轻量的 HTTP客户端基于 XMLHttpRequest 服务来执行 HTTP 请求,支持丰富的配置,支持 Promise,支持浏览器端和 Node.js 端。自Vue2.0起,尤大宣布取消对 vue-resource 的官方推荐,转而推荐 axios。现在 axios 已经成为大部分 Vue 开发者的......
  • JAVA开发使用@JsonFormat注解,日期比实际日期少一天问题
    前言最近同事反馈一个问题,说是日期保存后未发生变化。刚开始以为是字段未对应或者是未保存成功,当我去进行排查的时候发现,发现数据保存没有问题。奇了怪了。问题现象库里日期数据保存正确,但是后台返回前台页面发现不正确。排查过程刚开始怀疑是数据未保存成功,经过测试发现数据......
  • excel异步导出-通用-仅限单组数据导出
     支持单组数据(List<T>)异步导出,比如1000条数据,可以按100条数据一个sheet的形式,去异步写入10个sheet中,每个sheet有100条数据createPageExcel方法是通过HttpServletResponse直接响应给前端createPageExcelUrl是生成一个File,然后上传到OSS,获取到Url返回给前端,此方法中有redis和os......