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下利用控制器载入对应脚本
Jul 17 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
drag-and-drop实现图片浏览器预览
Aug 06 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
JS+canvas画一个圆锥实例代码
Dec 13 Javascript
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
详解搭建一个vue-cli的移动端H5开发模板
Jan 17 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
javascript实现图片轮换动作方法
Aug 07 Javascript
Canvas三种动态画圆实现方法说明(小结)
Apr 16 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设计模式之代理模式的深入解析
2013/06/13 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue自定义指令directive实例详解
2018/01/17 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
Vue父子之间值传递的实例教程
2020/07/02 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
给老师的一封感谢信
2015/01/20 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript