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 Date自定义函数 延迟脚本执行
Mar 10 Javascript
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
ES6中Math对象的部分扩展
Feb 20 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
May 03 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
详解JavaScript 作用域
Jul 14 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高级OOP技术演示
2009/08/27 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
Javascript var变量隐式声明方法
2009/10/19 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
银行自荐信范文
2013/10/07 职场文书
小学英语课后反思
2014/04/26 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
担保书范本
2015/01/20 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
退休欢送会致辞
2015/07/31 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers