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下数值型比较难点说明
Jun 07 Javascript
jQuery实现可用于博客的动态滑动菜单
Mar 09 Javascript
Javascript函数式编程简单介绍
Oct 11 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
jquery Banner轮播选项卡
Dec 26 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
Mac下安装vue
Apr 11 Javascript
JS 实现分页打印功能
May 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
php实现求相对时间函数
2015/06/15 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
在Python的Django框架中编写错误提示页面
2015/07/22 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
python查看数据类型的方法
2019/10/12 Python
python实现人工蜂群算法
2020/09/18 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
小车司机岗位职责
2013/11/25 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
自我鉴定三原则
2014/01/13 职场文书
秋天的雨教学反思
2014/04/27 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
nginx实现动静分离的方法示例
2021/11/07 Servers