因为一些原因导出EXCEL功能必须前端来做,所以就研究了一下,在网上也找了一些文章来看,有一些不完整,我做完了就记录下来,供大家参考:

1、首先先安装依赖:

npm install file-saver xlsx --save
npm install script-loader --save-dev

2、下载需要的两个js插件,Blob.js和 Export2Excel.js。这两个文件在别的文章里面有下载地址,很好找。在src/目录下新建一个vendor,将这两个文件放到里面。

3、修改webpack.base.conf.js配置:

在resolve.alias下面加上:

'vendor': path.resolve(__dirname, '../src/vendor')

 '../src/vendor' 是vendor的所在位置。

4、配置好以后,开始写代码:

我用的模拟数据,

<el-button type="warning" icon="el-icon-download" size="small" @click="exportExcel">导出EXCEL</el-button>

  

data () {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
}
}

  

formatJson (filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
},
export2Excel () {
require.ensure([], () => {
const { export_json_to_excel } = require('../../vendor/Export2Excel') // 路径如果不同自己修改
const tHeader = ['日期', '姓名', '地址'] // 表头
const filterVal = ['date', 'name', 'address'] // 内容对应的参数名
const data = this.formatJson(filterVal, this.tableData) // this.tableData是内容json
export_json_to_excel(tHeader, data, '导出')
})
}

到这一步就可以在浏览器里面测试了,我在谷歌、火狐里面测的都没有问题,但是在IE就有问题了,报错了:

"Promise" 未定义,然后我又查找了些文章,知道要安装babel-polyfill。

5、安装babel-polyfill

npm install --save-dev babel-polyfill

在webpack.base.conf.js这个文件配置, 加入require("babel-polyfill"):

在main.js里面导入它,

然后重新运行npm run dev,在IE下测试就可以啦,但是低版本还是不支持的,我们对IE要求不是很高,这样就可以了。

vue项目导出EXCEL功能的更多相关文章

  1. Vue通过Blob对象实现导出Excel功能

    不同的项目有不同的导出需求,有些只导出当前所显示结果页面的表格进入excel,这个时候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js来实现导出Exc ...

  2. 项目笔记:导出Excel功能

    1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...

  3. 项目笔记:导出Excel功能分sheet页插入数据

    导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN&quo ...

  4. 64位系统web项目导出excel问题分析及解决方法汇总

    最近在web项目中做了一个导出Excel功能.在导出的时候报错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败. 一 ...

  5. Atitit.导出excel功能的设计 与解决方案

    Atitit.导出excel功能的设计 与解决方案 1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细 ...

  6. Vue项目实现excel导出

    1.package.json里面安装三个插件 npm install  xlsx  --save npm install  script-loader  –save-dev npm install   ...

  7. 【angularjs】pc端使用angular搭建项目,实现导出excel功能

    此为简单demo. <!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset= ...

  8. vue中导出Excel表格

    项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地.当然我们也可以通过一些处理来修改要导出的数据格式,具体需求具体对待. 1.首先我们需要安装 ...

  9. layui + mvc + ajax 导出Excel功能

    为了更方便,没基础的伙伴更容易理解,我尽量详细简便 省了很多代码,一步一步的试 自己引入文件 1. html 前端视图代码 Layui的数据绑定 全部代码 @{ Layout = null; } &l ...

随机推荐

  1. 线段树区间离散化维护按秩合并并查集(可撤销)——牛客多校第八场E

    模板题..去网上学了可撤销的并查集.. /* 给定一个无向图,边的属性为(u,v,l,r),表示<u,v>可以通过的size为[l,r] 求出有多少不同的size可以从1->n 把每 ...

  2. python 识别验证码自动登陆

    # python 3.5.0 # 通过Chrom浏览器访问发起请求 # 需要对应版本的Chrom和chromdriver # 作者:linyouyi from selenium import webd ...

  3. 仿淘宝使用flex布局实现页面顶部和底部的固定布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. CSS3:CSS3 圆角

    ylbtech-CSS3:CSS3 圆角 1.返回顶部 1. CSS3 圆角 CSS3 圆角 使用 CSS3 border-radius 属性,你可以给任何元素制作 "圆角". C ...

  5. jquery preventDefault()事件

    定义和用法 preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交). 语法 event.preventDefault() 参数 描述 event 必需. ...

  6. Aizu - ALDS1_13_A-8 Queens Problem-八皇后的路径输出

    The goal of Queens Problem is to put eight queens on a chess-board such that none of them threatens ...

  7. Linux下core文件调试

    1,ulimit -a查看默认参数 2,ulimit -c 1024 设置core文件大小,如果超过1024个blocks,则不会产生core文件 注:tune2fs -l /dev/sda8 输出分 ...

  8. 面试总结【css篇】- css3新增特性

    1.css3中的关键帧 @keyframes规则通过在动画序列中定义关键帧(或waypoints)的样式来控制CSS动画序列中的中间步骤.这 比转换更能控制动画序列的中间步骤. @keyframes ...

  9. Java & 架构硬核福利,速度上车!

    极客时间福利时间! 最近,栈长每周都会给大家带来极客时间的专栏拼团优惠,给错过优惠的朋友一个再次优惠上车的机会. <从0开始学架构>和<Java核心技术36讲>,这两个专栏很火 ...

  10. spring boot 结合jsp简单示例

    引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...