vue+element-ui做表格的导出功能(一)。

一.安装插件:

 npm install -S file-saver xlsx

 npm install -D script-loader

二.下载js文件,并用新建文件夹:

链接:https://pan.baidu.com/s/1wNyTHAc9RNNN1EB2Ta3Hfg
提取码:jbwa
复制这段内容后打开百度网盘手机App,操作更方便哦

在main.js文件夹引入:

更改Export2Excel.js文件,如下:

在vue文件中引入:

import {export_json_to_excel} from ‘./public/Export2Excel‘

整体代码:

<template>
  <div id="app">
    <button @click="export2Excel">下载表格</button>
    <el-table :data="tableData" style="width: 100%">    <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column
          type="index"
          width="50">
      </el-table-column>
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
    import {export_json_to_excel} from ‘./public/Export2Excel‘

    export default {
      data () {
        return {
          tableData: [
            {
            date: ‘2016-05-02‘,
            name: ‘王小虎‘,
            address: ‘上海市普陀区金沙江路 1518 弄‘
          },
          {
            date: ‘2016-05-04‘,
            name: ‘王小虎‘,
            address: ‘上海市普陀区金沙江路 1517 弄‘
          },
          {
            date: ‘2016-05-01‘,
            name: ‘王小虎‘,
            address: ‘上海市普陀区金沙江路 1519 弄‘
          },
          {
            date: ‘2016-05-03‘,
            name: ‘王小虎‘,
            address: ‘上海市普陀区金沙江路 1516 弄‘
          }
        ]
           }
      },
    methods: {
        export2Excel() {

              require.ensure([], () => {

            const tHeader = [‘姓名‘, ‘住址‘, ‘时间‘] // 对应表格输出的中文title

            const filterVal = [‘name‘, ‘address‘, ‘date‘] // 对应表格输出的数据

            const list = this.tableData // 表格data

            const data = this.formatJson(filterVal, list)

            export_json_to_excel(tHeader, data, ‘xlsx‘) // 对应下载文件的名字

              })
          },
          formatJson(filterVal, jsonData) {
              return jsonData.map(v => filterVal.map(j => v[j]))
        }

    }
      }
</script>

亲测有效,默认导出的全部数据,如果要导出单条或者多条数据,就要拿到当前的勾选数据

在el-table标签中加selection-change ,当选择项发生变化时会触发该事件,如下图:

在methods添加该方法,定义一个空数组:

勾选就会拿到该条的数据,就可以做单条或多条的数据导出了,写的不足欢迎吐槽!

原文地址:https://www.cnblogs.com/0314dxj/p/11273184.html

时间: 2024-10-13 20:39:59

vue+element-ui做表格的导出功能(一)。的相关文章

vue + element ui table表格二次封装 常用功能

因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data="tableData" size="medium" ref="multipleTable" border fit @sort-change="handleSort" @filter-change="filterHandler&

vue + element ui 阻止表单输入框回车刷新页面

问题 在 vue+element ui 中只有一个输入框(el-input)的情况下,回车会提交表单. 解决方案 在 el-form 上加上 @submit.native.prevent 这个则会阻止表单回车提交. 测试 下面的代码出现表单回车提交 <body> <div id="app"> <el-form ref="form" :model="form" label-width="80px"&

vue+element UI实现分页组件

1.前言 在web页面中,常常需要将后台查询到的数据以表格形式展示出来,而这些数据量往往会非常庞大,如果将所有要展示的数据一次性请求获取并展示到页面上,那页面长度势必会变得非常的长,很不美观.更重要的是,如果数据量过于大,在页面加载时一次性请求全部数据将会耗费大量网络资源,性能极低.但是,如果我们可以将数据分页展示,这样页面首先不会变的冗长,另外只有用户点击页码才会发出请求并且每次请求的数据量也不会很大,这就极大的节省了网络资源,提高了性能.本文就以vue结合element UI实现一个数据分页

vue+element UI实现多级导航菜单

1.前言 在某次日常开发中,项目要求页面的导航菜单需要动态加载,即菜单不能在页面上写死,菜单上的数据由后端开发从数据库中获取返回给前端使用,前端拿到数据后再通过解析数据最终将菜单渲染出来.由于菜单有可能是多级的,所以我们需要使用递归的方式,一层一层的递归数据,将多级菜单完整显示出来.本篇博文借助element UI组件库中的Navmenu导航菜单组件,将其进行改造后封装成一个多级导航菜单组件. 2.工作流程 组件封装好之后,由父组件调用该组件,父组件先向后端发送请求获取菜单数据,然后将菜单数据传

vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、一级mockjs用法、路由懒加载三种方式

不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI简单Cascader级联选择器使用</p> <el-cascader :options='options' v-model="selectedOptions" @change="handleChange"> </el-

element ui的表格列设置fixed后做动态表格出现表格错乱

最近使用element-UI时,使用table做动态表格,当操作列使用fixed时,动态切换表格列设置设置时就会出现错乱,情况如下: 解决方法: 把el-table-column上的key设成一个随机数Math.random(),每次表头设置完都要更新一下就正常,如下 这样,显示结果就正常了 原文地址:https://www.cnblogs.com/lwming/p/12074579.html

VUE+Element UI实现简单的表格行内编辑效果

原理是通过Css控制绑定的输入控件与显示值,在选中行样式下对控件进行隐藏或显示 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="UTF-8"> 6 <!-- 引入样式 --> 7 <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/

vue element UI el-table 给表格添加复选框,并得到所选值

<el-table @selection-change="changeCheckBoxValue" v-bind:data="this.requireData" v-loading="this.tableLoading" border style="width:100%" > <el-table-column min-width='140' type="selection"><

vue+element ui项目总结点(三)富文本编辑器 vue-wangeditor

1.参考 https://www.npmjs.com/package/vue-wangeditor 使用该富文本编辑器 <template> <div class="egit_box"> <p>富文本编辑器试用</p> <div class="text_box" style="width: 100%;display: flex;justify-content: center;"> <