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 EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
jQuery-ui中自动完成实现方法
Jun 10 Javascript
js常用代码段整理
Nov 30 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
vue实现同时设置多个倒计时
May 20 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
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
微信小程序签到功能
2018/10/31 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
Python中Class类用法实例分析
2015/11/12 Python
Python常用库推荐
2016/12/04 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
python中return的返回和执行实例
2019/12/24 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
十八大报告观后感
2014/01/28 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
2015政治思想表现评语
2015/03/25 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers