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 相关文章推荐
JS类库Bindows1.3中的内存释放方式分析
Mar 08 Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
七个很有意思的PHP函数
May 12 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
Dec 07 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
Sep 07 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
webpack之引入图片的实现及问题
Oct 08 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
Dec 14 Javascript
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
PHP 编程请选择正确的文本编辑软件
2006/12/21 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
JS 常用校验函数
2009/03/26 Javascript
JavaScript 10件让人费解的事情
2010/02/15 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
javascript history对象详解
2017/02/09 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
python 实现return返回多个值
2019/11/19 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
党员创先争优公开承诺书
2014/03/28 职场文书
安全环保演讲稿
2014/08/28 职场文书
干部考察材料范文
2014/12/24 职场文书
教师辞职书范文
2015/02/26 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技