vue.js中导出Excel表格的案例分析


Posted in Javascript onJune 11, 2019

有一个项目需求,要求在前端项目中导出Excel表格,经过查找代码,Vue.js确实可以实现,具体实现步骤为:

1.安装依赖

npm install -S file-saver xlsx
npm install -D script-loader

2.导入两个JS

下载Blob.js和Export2Excel.js,在src目录下新建Excel文件夹,里面放入Blob.js和Export2Excel.js两个JS文件

3.在main.js引入这两个JS文件 **

import Blob from './excel/Blob'
import Export2Excel from './excel/Export2Excel.js'

4.在组件中使用

//导出的方法
exportExcel() {
 require.ensure([], () => {
  const { export_json_to_excel } = require('../excel/Export2Excel');
  const tHeader = ['序号', '昵称', '姓名'];
  // 上面设置Excel的表格第一行的标题
  const filterVal = ['index', 'nickName', 'name'];
  // 上面的index、nickName、name是tableData里对象的属性
  const list = this.tableData; //把data里的tableData存到list
  const data = this.formatJson(filterVal, list);
  export_json_to_excel(tHeader, data, '列表excel');
 })
},

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

tHeader是表头,filterVal 中的数据是表格的字段,tableData中存放表格里的数据,类型为数组,里面存放对象,表格的每一行为一个对象。

tableData 中的值为:

data () {
return {
 tableData: [
  {'index':'0',"nickName": "沙滩搁浅我们的旧时光", "name": "小明"},
  {'index':'1',"nickName": "女人天生高贵", "name": "小红"},
  {'index':'2',"nickName": "海是彩色的灰尘", "name": "小兰"}
 ]
}
}

最后实现的效果图:

vue.js中导出Excel表格的案例分析

如果运行时,报如下所示的错误:

vue.js中导出Excel表格的案例分析

这是因为Export2Excel.js的设置需要改下:

vue.js中导出Excel表格的案例分析

注: 把require('script-loader!vendor/Blob')改为 require('./Blob.js')

项目中实际应用案例

/ 导出 */

formatJson(filterVal, jsonData) {
   // console.log(filterVal,jsonData)
    return jsonData.map(v => filterVal.map(j => {
       if(j == 'xxdz'){      //..详细地址
        return v.name1 + v.name2 + v.name3 + v.gridName + v.xxdz
      }
      if(j == 'qyzw'){      //..区域装维
        return v.name2 + '/' + v.yxCname
      }
      if(j == 'state'){      //..工单状态
        return this.config.gzdStateList[v.state]
      }
      return v[j]
    }))
  },
  ygExcel() {
    let params = {}
    let queryForm = this.deepClone(this.queryForm)
    params.currentPage =1
    params.pageSize = this.count
    params.queryForm = queryForm
    params.prop = this.prop
    params.order = this.order
    // params.ifExport = true
    this.startLoading()
    this.$post( "/api/UserController/getList",params, (data) => {
     console.log(data)
      let tableData =data.list;
      // let tableData = data.list;
      require.ensure([], () => {
        const { export_json_to_excel } = require('../vendor/Export2Excel');
        const tHeader = this.config.ygbHeader;//在config中定义表头
        const filterVal = this.config.ygFilterVal;//在config中定义表头对应的字段
        const data = this.formatJson(filterVal, tableData);
        export_json_to_excel(tHeader, data, '员工详情表');下载是显示的表名
      })
    })
  },

总结

以上所述是小编给大家介绍的vue.js中导出Excel表格的案例分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
有关javascript的性能优化 (repaint和reflow)
Apr 12 Javascript
js实现的常用的左侧导航效果
Oct 17 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
Dec 30 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
jquery append与appendTo方法比较
May 24 jQuery
ES6入门教程之let、const的使用方法
Apr 13 Javascript
vue设置全局访问接口API地址操作
Aug 14 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
ES6 Proxy实现Vue的变化检测问题
Jun 11 #Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
Jun 10 #Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 #Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 #Javascript
vuex 中插件的编写案例解析
Jun 10 #Javascript
使用webpack搭建vue项目及注意事项
Jun 10 #Javascript
详解iview的checkbox多选框全选时校验问题
Jun 10 #Javascript
You might like
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
Python发送email的3种方法
2015/04/28 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python中偏函数用法示例
2018/06/07 Python
python 把列表转化为字符串的方法
2018/10/23 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
电脑教师的教学自我评价
2013/11/26 职场文书
大学生村官工作感言
2014/01/10 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
大学专科求职信
2014/07/02 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL