一、先来了解一下EasyExcel:
1、Poi和EasyExcel框架都能生成excel,但是poi框架非常耗内存,因此推荐使用easyexcel生成excel。EasyExcel是阿里巴巴开源的一个excel处理框架,easyexcel能够减少内存的消耗的主要原因是,在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
2、EasyExcel导入使用的场景:减轻录入工作量
二、vue前端代码实现
调用vue element-ui官网(https://element.eleme.io/#/zh-CN/component/upload)中的upload上传组件:
以批量导入通知信息为例,在Notice.vue中:
<template>
<div>
<el-upload
class="upload-demo"
drag
action=""
:http-request="upload"
:before-upload="beforeUpload"
multiple>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传xls/xlsx文件,且不超过100M</div>
</el-upload>
<br/>
</div>
<template>
调用了文件上传导入前和导入两个方法:
<script>
export default {
methods: {
//导入
beforeUpload: function(file) {
let extension = file.name.substring(file.name.lastIndexOf('.')+1);
let size = file.size / 1024 / 1024;
if(extension !== 'xlsx') {
this.$message.warning('只能上传后缀是.xlsx的文件');
}
if(size > 10) {
this.$message.warning('文件大小不得超过10M');
}
},
upload: function(param) {
let formData = new FormData()
formData.append('file', param.file)
this.$a