vue上传excel并展示_vue实战(15)——基于Element上传Excel读取内容

这篇博客介绍了如何在Vue应用中实现Excel文件的上传和内容读取。当数据量较大时,推荐使用后端处理;对于较小数据量,前端可以完成读取并处理。文章详细讲解了封装组件的方法,利用xlsx库读取Excel内容,并将数据以JSON格式传递给父组件进行进一步处理。
摘要由CSDN通过智能技术生成

image.png

1、应用场景

大多数管理后台很多情况会有批量上传数据的业务,用的最多的要数Excel上传,根据不同的业务场景有两种上传方式:

对于数据量很大的情况,需要后端提供上传的接口,像上传图片视频一样,数据解析和提取都由后端来处理,表格内容不太多的情况下单次10000条以上(单次上传量还要根据自己的项目情况而定)一般会选择这种方式,数据量太大浏览器读取的速度远远小于服务端读取

对于数据量不太大的情况,一般单次上传10000条以内的,可以通过前端读取传给后端来处理,这种适用于大部分场景,而前端只需要封装个组件即可,每次按需求读取或处理好数据返给后端

2、封装组件

读取Excel同样需要依赖xlsx这个插件,之前文章有Excel导出的文章,这里就不多解释,原理都差不多,通过解析读取Excel内容然后输出

accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />

{ {title}}

import XLSX from 'xlsx'

export default {

name: "importExcelCommon",

props: {

title: {

type: String,

default: '导入表格'

Vue中使用Element UI上传Excel文件通常是通过`el-upload`组件配合FileReader API来完成的。下面是一个简单的步骤描述: 1. 引入所需库:首先需要在项目中安装Element UI以及相关的依赖,如axios用于发送HTTP请求。 ```bash npm install element-ui axios ``` 2. 配置`el-upload`组件:在HTML模板中,创建一个`<el-upload>`元素,并设置一些属性,例如接受文件类型、最大大小等。同时,可以配置一个action(通常是一个API接收文件的地方),以及处理上传过程的方法。 ```html <el-upload class="upload-demo" action="/api/upload-excel" accept=".xlsx,.xls" max-size="5MB" :on-change="handleChange" :before-upload="beforeUpload" > <i class="el-icon-upload"></i> <div class="el-upload__text">点击上传</div> </el-upload> ``` 3. 定义处理函数:在Vue实例中定义`handleChange`和`beforeUpload`方法。`handleChange`会在用户选择文件后触发,而`beforeUpload`则可以在上传前做一些验证或操作,比如读取文件内容预览。 ```javascript data() { return { file: null, }; }, methods: { handleChange(file) { this.file = file; }, beforeUpload(file) { // 判断是否是excel文件 const isExcel = /\.xls(\?.*)?|\.xlsx(\?.*)?$/.test(file.name); if (!isExcel) { this.$message.error('只支持上传Excel文件'); return false; // 返回false取消上传 } return true; // 返回true允许上传 }, uploadFile() { if (this.file) { axios.post(this.action, { file: this.file }, { onUploadProgress: event => { console.log(`百分比:${Math.round((event.loaded / event.total) * 100)}%`); }, }).then(response => { console.log(response.data); // 处理上传成功后的数据 }) .catch(error => { console.error('上传错误', error); }); } }, }, ``` 4. 用户交互:你可以提供一个“开始上传”按钮或事件监听器,在用户点击时调用`uploadFile`方法。 注意:这个例子假设服务器端能够解析并处理上传Excel文件,实际开发时还要考虑后端接口的支持和文件解析的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值