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之二(接口实现介绍)
Jan 27 Javascript
jquery动态添加删除一行数据示例
Jun 12 Javascript
jquery 取子节点及当前节点属性值的方法
Aug 24 Javascript
JS动态添加Table的TR,TD实现方法
Jan 28 Javascript
node.js操作mysql(增删改查)
Jul 24 Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
javascript加减乘除的简单实例
Jul 12 Javascript
原生js FileReader对象实现图片上传本地预览效果
Mar 27 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
Apr 08 Javascript
vue3种table表格选项个数的控制方法
Apr 14 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
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
学习ExtJS form布局
2009/10/08 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
python 随机数生成的代码的详细分析
2011/05/15 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
Python星号*与**用法分析
2018/02/02 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
pytorch实现线性拟合方式
2020/01/15 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
地陪导游欢迎词
2015/01/26 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
PHP策略模式写法
2021/04/01 PHP
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android