Vue项目实现导入导出Excel表格功能
前提:在我的项目中我使用的是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表格功能的更多相关文章
- PHP导入导出excel表格图片(转)
写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...
- PHP导入导出excel表格图片的代码和方法大全
基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...
- Java代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
- vue项目使用js-xlsx进行excel表格的导入和导出方法的简单原型封装
前提:已经安装好 file-saver xlsx和 script-loader,如未安装,请查看 https://www.cnblogs.com/luyuefeng/p/8031597.html 新建 ...
- vue项目,前端导出excel
今天研究一下前端如何导出excel,边查边实践,边记录 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还涉及不少二进制的东西 file-saver:ES5新增了相关 ...
- Java IO 导入导出Excel表格
1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...
- Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
- JS导入导出Excel表格的方法
https://blog.csdn.net/aa122273328/article/details/50388673 导出 https://blog.csdn.net/qq_37281252/arti ...
- Spring Boot:添加导出Excel表格功能
1.添加POI依赖 2.创建EXCEL实体类 3.创建表格工具类 4.创建ExcelConstant 5.创建ExcelController 1.添加POI依赖 <dependency> ...
- phpexcel 导入导出excel表格
phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...
随机推荐
- 将mysql的输出文本写回mysql
1 准备工作 1.1 环境准备 操作系统:Microsoft Windows 10 专业工作站版 软件版本:Python 3.9.6 第三方包: pip install pandas2.1.0 pip ...
- [ABC246E] Bishop
Problem Statement We have an $N \times N$ chessboard. Let $(i, j)$ denote the square at the $i$-th r ...
- Cocos内存管理解析 CCRef/retain/release/autorelease
Cocos内存管理源码(autorelease解析) 背景 这段时间在做项目的时候,需求需要往spine动作的挂点上绑定按钮节点,由于按钮在编辑器中是加在已有节点上的,所以在往spine上添加挂点时, ...
- Redis全文搜索教程之创建索引并关联源数据
Redis 全文搜索是依赖于 Redis 官方提供的 RediSearch 来实现的.RediSearch 提供了一种简单快速的方法对 hash 或者 json 类型数据的任何字段建立二级索引,然后就 ...
- lxml模块
lxml主要用xpath.css选择器等来提取xml格式文档,html也是xml格式文档的一种. xpath方法返回列表的三种情况 返回空列表:没有找到任何元素 返回字符串列表:xpath规则匹配用了 ...
- AntDesignBlazor示例——Modal表单
本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考. 示例代码仓库:https://gitee.com/known/BlazorDemo 1. 学习目标 创建Mod ...
- 23年底,我出齐了Spring boot,Spring cloud和案例方面的书,正在写一本面试书(代年终总结)
年末了,再来总结一下吧,希望本人明年的年终总结文还能在博客园发. 这次总结的主题是本人出的java书.这几年本人出了不少书,其中有python.redis和Java方面的. 姑且不说其它,java方面 ...
- 2023.3 Idea配置Tomcat环境
tomcat配置 下载tomcat 先到官网(按住Ctrl再左键点击直接打开官网)下载64位的tomcat,网速慢就用魔法下 创建项目.模块 打开idea(我用的是最新的idea的专业版,ui有点变化 ...
- .net Core实战简单文件服务器
首先新建一个ASP.NET Core 项目,选中空的模板,如下图所示 在NuGet包中添加Microsoft.AspNetCore.StaticFiles 添加好以后我们在Startup.cs中添加对 ...
- Java异常中处理return
Java中的return语句 在Java中,return语句用于从一个方法中返回结果,并终止当前方法的执行.在方法中使用return语句后,后续的语句将不会执行. public int add(int ...