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 检测、添加、移除样式(className)函数代码
Sep 08 Javascript
JavaScript 拾漏补遗
Dec 27 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 Javascript
jQuery生成假加载动画效果
Dec 01 Javascript
微信小程序 弹窗自定义实例代码
Mar 08 Javascript
基于vue的换肤功能的示例代码
Oct 10 Javascript
js生成word中图片处理方法
Jan 06 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
js实现视图和数据双向绑定的方法分析
Feb 05 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与已存在的Java应用程序集成
2006/10/09 PHP
4.与数据库的连接
2006/10/09 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
js 浏览器事件介绍
2012/03/30 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python+Wordpress制作小说站
2017/04/14 Python
python 实现按对象传值
2019/12/26 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
新学期开学演讲稿
2014/05/24 职场文书
民政局未婚证明
2015/06/15 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏