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 相关文章推荐
jQuery UI-Draggable 参数集合
Jan 10 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
常用的JS验证和函数汇总
Dec 23 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
jQuery实现简单倒计时功能的方法
Jul 04 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
vue自定义表单生成器form-create使用详解
Jul 19 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
vue实现五子棋游戏
2020/05/28 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
python+django+rest框架配置创建方法
2019/08/31 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
python实现TCP文件传输
2020/03/20 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
内容编辑个人求职信
2013/12/10 职场文书
政治表现评语
2014/05/04 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
白银帝国观后感
2015/06/17 职场文书