前提:在我的项目中我使用的是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. 解决Spring Boot Mail无法发送HTML格式的邮件

    Spring Boot版本:2.6.2 查阅spring-boot-starter-mail源码的MimeMessageHelper.setText方法,发现有个Boolean类型参数控制是否是HTM ...

  2. Linux笔记03: Linux常用命令_3.5权限管理命令

    3.5 权限管理命令 3.5.1 权限介绍 1.为什么需要权限 绝大多数用户使用的是个人计算机,而使用个人计算机的用户一般都是被信任的用户(如家人.朋友等).在这种情况下,大家都可以使用管理员身份直接 ...

  3. Kernel Memory 入门系列: Embedding 简介

    Kernel Memory 入门系列: Embedding 简介 在 RAG模式 其实留了一个问题. 我们对于的用户问题的理解和文档的检索并没有提供合适的方法. 当然我们可以通过相对比较传统的方法. ...

  4. 从零玩转设计模式之抽象工厂设计模式-chouxiangshejimoshi

    title: 从零玩转设计模式之抽象工厂设计模式 date: 2022-12-08 16:05:03.28 updated: 2022-12-11 23:03:16.842 url: https:// ...

  5. Python——第五章:模块(Module)、自定义模块、第3方开源模块、包(Package)

    什么是模块(Module)? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多代码按功能分组,分别放到不同的文件里,这 ...

  6. 一文读懂Spring框架中Bean的生命周期

    我们先来聊聊bean的生命周期: bean的生命周期图: AbstractAutowireCapableBeanFactory的docreateBean()方法(简单描述):  1.可以根据源码的时候 ...

  7. Win10笔记本开启热点让手机上网

    Win10开启热点让手机上网,笔记本电脑开启热点,笔记本电脑开启WiFi,手机连接笔记本电脑热点上网. 1.前提条件:笔记本电脑网线联网,笔记本电脑支持热点 2.胆子要大,不怕公司网管统计发现你的电脑 ...

  8. Golang 命名返回值和普通返回值

    1.概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值.命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持"裸&q ...

  9. ElasticSearch-2

    原文链接:https://gaoyubo.cn/blogs/cbe60a4d.html 一.DSL查询文档 1.1DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain S ...

  10. Windows10 Docker安装详细教程

    前言: 在上一章节已经成功的在Linux CentOS 8.4远程服务器中安装了Docker,下面让我们一起来试试如何在Windows10中安装Docker并运行起来.有人说你既然在Linxu环境中安 ...