vue项目实现导入导出excel表格功能(代码片段)

guwufeiyang guwufeiyang     2022-12-03     531

关键词:

前提:在我的项目中我使用的是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中element的table表格导入与导出为excel表格的实现(代码片段)

Vue中element的table表格导入与导出为excel表格的实现一、导入2.1安装xlsx插件2.2新建导入功能组件2.3注册全局的导入excel组件2.4创建导入路由组件2.5封装导入接口实现excel导入2.6导入时间格式的处理二、导出2.1安装excel所需依赖和按需... 查看详情

基于vue实现excel导出导入功能(代码片段)

...档查看:Excel导出Excel的导入导出都是依赖于js-xlsx来实现的。在js-xlsx的基础上又封装了Export2Excel.js来方便导出数据。#使用由于Export2Excel不仅依赖js-xlsx还依赖file-saver和script-loader。所以我们需要下载三个包,和一个js文件Ex... 查看详情

vue通过blob对象实现导出excel功能(代码片段)

  不同的项目有不同的导出需求,有些只导出当前所显示结果页面的表格进入excel,这个时候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js来实现导出Excel功能。但是有些需求因为数据量太大,成千上万条数据,所以... 查看详情

vue导出excel数据表格功能(代码片段)

...数据下载出来。第一步安装依赖包,需要把代码下载你的项目当中  cnpminstall  file-saver  cnpminstall xlsx    cnpminstall script-loader第二步在项目中创建一个新的文件夹 查看详情

springboot项目优雅实现excel导入导出功能(代码片段)

点击上方关注“终端研发部”设为“星标”,和你一起掌握更多数据库知识责编:架构君 | 来源:https://zzuhkp.blog.csdn.net/article/details/125097026上一篇好文:涉嫌简历造假,23届一位“offer大神”凉凉了!大家... 查看详情

sas的导入导出excel表格的实现(代码片段)

首先SAS可以使用手动来导入,导出但是这样对于每次操作都需要来手动操作,所以就使用了SAS中的宏来编写代码需求:1.首先是给定excel的文件路径,来生成一个数据集2.然后是对数据集中进行数据的处理3.最后是对处理好的数据集导出... 查看详情

poi实现excel导入导出(代码片段)

我们知道要创建一张excel你得知道excel由什么组成,比如说sheet也就是一个工作表格,例如一行,一个单元格,单元格格式,单元格内容格式…这些都对应着poi里面的一个类。一个excel表格:HSSFWorkbookwb= new HSSFWorkbook();... 查看详情

vue工具组件——实现导入导出excel文件(代码片段)

具体的实现以黑马的HR人力资源管理系统为准http://ihrm-java.itheima.net/需要下载的点链接https://download.csdn.net/download/TroyeSivanlp/83339582导入导出excel文件导入excel1.需要下载xlsx依赖2.工具组件3.练习:导入的demotempletemethods:(大概... 查看详情

vue小模块之功能全面的表格表格数据的excel导出(代码片段)

Vue小模块之功能全面的表格(九)表格数据的Excel导出技术栈Vue全家桶:前端框架Vue.js状态管理Vuex动态路由匹配vue-routerhttp服务axios模块打包webpackUI框架element数据服务器服务器端node.js基于node的web框架express分布式数据... 查看详情

2.自定义@excel注解实现数据excel形式导入导出(代码片段)

...学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类的依赖包。由于吃了这个苦,我决定把这个艰辛的CV操作通过一张逻辑图来表达,方便我以后复用。下面证实开始介绍这... 查看详情

vue小模块之功能全面的表格表格数据的excel导入(代码片段)

Vue小模块之功能全面的表格(十)表格数据的Excel导入技术栈Vue全家桶:前端框架Vue.js状态管理Vuex动态路由匹配vue-routerhttp服务axios模块打包webpackUI框架element数据服务器服务器端node.js基于node的web框架express分布式数据... 查看详情

vue项目实现导入/导出excel

参考技术A首先安装依赖包前端通过字节流或者url实现导出,字节流方式导出的文件方式可以通过前端实现文件名称的修改,url导出方式则不能修改导出的文件名(文件名由后端提供)。 查看详情

vue项目中如何把表格导出excel表格

参考技术A有一个项目需求,要求在前端项目中导出Excel表格,经过查找代码,Vue.js确实可以实现,具体实现步骤为:1.安装依赖//npmnpminstall-Sfile-saverxlsxnpminstall-Dscript-loader或者//yarnyarnaddfile-saveryarnaddxlsxyarnaddscript-loader--dev2.导入两个... 查看详情

asp.netcoreweb的导入导出excel功能(代码片段)

...使用NPOI,这里讲解EPPlus的方式 1.创建asp.netcoreweb(mvc)项目效果图如下  2.在项目上右 查看详情

配置简单功能强大的excel工具类搞定excel导入导出工具类(代码片段)

对于J2EE项目导入导出Excel是最普通和实用功能,本工具类使用步骤简单,功能强大,只需要对实体类进行简单的注解就能实现导入导出功能,导入导出操作的都是实体对象.请看一下这个类都有哪些功能:?????1.实体属性配置了注解就能... 查看详情

vue插件之导出excel(代码片段)

本周项目需要实现导出列表数据的功能,在githup上找到了一个比较好用的插件~简单的整理一下,希望对各位有所帮助。githup地址使用方法:1.npm安装依赖npminstallvue-json-excel2.项目主文件入口main.js全局引入importJsonExcelfrom‘vue-json-ex... 查看详情

vue+iview中的table表格导出excel表格(代码片段)

...sv后缀文件,类似于excel文件,但是并不是excel文件。二、实现table表格导出excel文件利用Blob.js和Export2Excel.js两个文件实现  1.Blob.js和Export2Excel.js文件    链接:https://pan.baidu.com/s/1PvP-NxmONNh71SRDvlL_9 查看详情

前端必读2.0:如何在react中使用spreadjs导入和导出excel文件(代码片段)

...近我们公司接到一个客户的需求,要求为正在开发的项目加个功能。项目的前端使用的是React,客户想添加具备Excel导入/导出功能的电子表格模块。经过几个小时的原型构建后,技术团队确认所有客户需求文档中描述... 查看详情