前提:在我的项目中我使用的是ElementUi前端UI框架,用到的是里面的Upload上传组件。

第一步:需要安装三个依赖

npm install -S file-saver xlsx  (这里其实安装了2个依赖)

npm install -D script-loader

第二步:在main.js文件中全局导入挂载xlsx插件

//  导入excel插件

import XLSX from 'xlsx'

Vue.prototype.XLSX = XLSX

第三步:在src目录新建一个文件夹(名字随意),在这个文件夹里面放入2个JS文件分别是:Blob.js和Export2Excel.js,网上可百度下载。

第四步,需要的页面的template标签中开始写代码(我先写导入的代码)

<!-- 导入Excel -->
<el-upload
action="/上传文件的接口"
:on-change="onChange"
:auto-upload="false"
:show-file-list="false"
accept=".xls, .xlsx" >
<el-button type="warning" icon="el-icon-folder-add">批量导入</el-button>
</el-upload>

第五步:然后在  methods: {}中配置方法,代码如下:

 1 // ----------以下为导入Excel数据功能--------------
2 // 文件选择回调
3 onChange(file, fileList) {
4 console.log(fileList);
5 this.fileData = file; // 保存当前选择文件
6 this.readExcel(); // 调用读取数据的方法
7 },
8 // 读取数据
9 readExcel(e) {
10 console.log(e);
11 let that = this;
12 const files = that.fileData;
13 console.log(files);
14 if (!files) {
15 //如果没有文件
16 return false;
17 } else if (!/\.(xls|xlsx)$/.test(files.name.toLowerCase())) {
18 this.$message.error("上传格式不正确,请上传xls或者xlsx格式");
19 return false;
20 }
21 const fileReader = new FileReader();
22 fileReader.onload = ev => {
23 try {
24 const data = ev.target.result;
25 // console.log(data)
26 const workbook = this.XLSX.read(data, {
27 type: "binary"
28 });
29 console.log(workbook.SheetNames);
30 if (workbook.SheetNames.length >= 1) {
31 this.$message({
32 message: "导入数据表格成功",
33 showClose: true,
34 type: "success"
35 });
36 }
37 const wsname = workbook.SheetNames[0]; //取第一张表
38 const ws = this.XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); //生成json表格内容
39 console.log(ws);
40 that.outputs = []; //清空接收数据
41 for (var i = 0; i < ws.length; i++) {
42 var sheetData = {
43 // 键名为绑定 el 表格的关键字,值则是 ws[i][对应表头名]
44 id: ws[i]["id"],
45 stuNumber: ws[i]["学号"],
46 stuName: ws[i]["姓名"],
47 sex: ws[i]["性别"],
48 tel: ws[i]["电话"],
49 xueyuan: ws[i]["学院"],
50 banji: ws[i]["班级"],
51 lyNumber: ws[i]["楼宇号"],
52 sushe: ws[i]["宿舍号"]
53 };
54 that.studentlist.unshift(sheetData);
55 }
56 this.$refs.upload.value = "";
57 } catch (e) {
58 return false;
59 }
60 };
61 // 如果为原生 input 则应是 files[0]
62 fileReader.readAsBinaryString(files.raw);
63 },

此时导入的功能就结束了,下面开始实现导出的功能

第一步,在template标签中写入导出的按钮,并绑定单击事件,代码如下:

<el-button type="warning" icon="el-icon-download" @click="exportToExcel">批量导出</el-button>

第二步:在methods{}方法中写对应的方法

 1 // ----------以下为导出Excel数据功能--------------
2 exportToExcel() {
3 //excel数据导出
4 require.ensure([], () => {
5 const { export_json_to_excel } = require("../../excel/Export2Excel");
6 const tHeader = [
7 "id",
8 "学号",
9 "姓名",
10 "性别",
11 "联系电话",
12 "宿舍号",
13 "学院",
14 "班级",
15 "楼宇号"
16 ];
17 const filterVal = [
18 "id",
19 "stuNumber",
20 "stuName",
21 "sex",
22 "tel",
23 "sushe",
24 "xueyuan",
25 "banji",
26 "lyNumber"
27 ];
28 const list = this.studentlist;
29 const data = this.formatJson(filterVal, list);
30 export_json_to_excel(tHeader, data, "学生列表excel");
31 });
32 },
33 formatJson(filterVal, jsonData) {
34 return jsonData.map(v => filterVal.map(j => v[j]));
35 },

https://www.bilibili.com/video/BV1H7411N7Qq/?spm_id_from=333.788.videocard.0

https://github.com/liyaxu123/-Vue-ElementUi-NodeJS-Mysql-

Vue项目实现导入导出Excel表格功能的更多相关文章

  1. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  2. PHP导入导出excel表格图片的代码和方法大全

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  3. Java代码导入导出 Excel 表格最简单的方法

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  4. vue项目使用js-xlsx进行excel表格的导入和导出方法的简单原型封装

    前提:已经安装好 file-saver xlsx和 script-loader,如未安装,请查看 https://www.cnblogs.com/luyuefeng/p/8031597.html 新建 ...

  5. vue项目,前端导出excel

    今天研究一下前端如何导出excel,边查边实践,边记录 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还涉及不少二进制的东西 file-saver:ES5新增了相关 ...

  6. Java IO 导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  7. Java利用POI实现导入导出Excel表格示例代码

    转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...

  8. JS导入导出Excel表格的方法

    https://blog.csdn.net/aa122273328/article/details/50388673 导出 https://blog.csdn.net/qq_37281252/arti ...

  9. Spring Boot:添加导出Excel表格功能

    1.添加POI依赖 2.创建EXCEL实体类 3.创建表格工具类 4.创建ExcelConstant 5.创建ExcelController 1.添加POI依赖 <dependency> ...

  10. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

随机推荐

  1. C与Verilog差别

    C没有时钟概念,Verilog有时钟边沿触发. C无建立保持时间要求,Verilog要计算建立保持时间,并进行优化 C与工艺无关,Verilog依赖底层工艺cell,相同代码不同cell差异较大. V ...

  2. VO、DTO、Entity的区别

    只能说从实际用法的一般习惯上进行区分: 1.entity 里的每一个字段,与数据库相对应,注意:entity与对应的实际数据库表的字段 没有强制要求但是一般建议保持一致(包括字段数据类型),当然,从实 ...

  3. [ABC261D] Flipping and Bonus

    Problem Statement Takahashi will toss a coin $N$ times. He also has a counter, which initially shows ...

  4. Mock框架moco学习笔记

    目录 一.Moco框架基本介绍 1. 什么是Moco 2. Moco原理简介 3. Moco的配置和运行 4. Moco启动以及第一个demo 二.mock 的启动及第一个demo 1. 创建star ...

  5. 2 与HTTP相关的各种概念

    目录 1 与HTTP相关的各种应用 1 网络世界 2 浏览器 3 Web服务器 4 CDN 5 爬虫 2 与HTTP相关的各种协议 1 HTML 2 编程语言 3 WebService 4 WAF 1 ...

  6. DHorse v1.5.0 发布,基于 k8s 的发布平台

    版本说明 新增特性 支持同一机器部署多个DHorse服务: 支持Next..NET应用部署: 优化Node.Nuxt应用构建和部署的性能: 默认使用fabric8客户端与k8s集群交互,可以通过指定参 ...

  7. SpringCloud OpenFeign的使用

    SpringCloud OpenFeign的使用 是什么: 声明式http客户端. 目的: 使远程调用更简单 作用: 提供了http请求模板,仅需编写简单接口和插入注解,就可以定义好原始http请求的 ...

  8. 设置CentOS7使用代理服务器上网

    用三种方法设置CentOS7使用代理服务器上网 https://zhangyujia.cn/?p=1206 https://www.cnblogs.com/a-du/p/8964048.html 一. ...

  9. 记一次uboot编译/经验/教训

    记一次uboot编译/经验/教训 - 最近学习uboot移植有关的知识,在了解原理后自己编译uboot,但是出现了好多各式各样的错误,最后换了几次系统环境之后才找到错误来源 1.准备源码与交叉编译工具 ...

  10. Python函数加async,但没有加await可以异步吗

      在Python中,如果一个函数被标记为async,这意味着它是一个异步函数.但是,仅仅因为一个函数被标记为异步并不意味着它会自动异步执行.为了使异步函数真正异步,你需要在函数内部使用await关键 ...