热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

elementuiupload上传excel用xlsx读取文件行数

1.html

1.html


upload
class="btn-upload"
:action
="''"
:http
-request="uploadBtn"
:on
-error="uploadError"
:show
-file-list="false"
accept
=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
>
button
type="primary"
size
="small"
round
icon
="el-icon-upload2">
上传

2.js

import XLSX from 'xlsx';
// 按钮-上传
uploadBtn(uploadData: any) {
const rABS = true;
const f = uploadData.file;
const reader = new FileReader();
let jsonArr
= [];
reader.onload
= (e: any) => {
let data: any
= e.target.result;
if (!rABS) data = new Uint8Array(data);
const workbook = XLSX.read(data, {
type: rABS
? 'binary' : 'array'
});
const first_worksheet = workbook.Sheets[workbook.SheetNames[0]]; // 拿第一个sheet的内容
jsOnArr= XLSX.utils.sheet_to_json(first_worksheet, {header:1}); // 转成array
const uploadFileCOntentList= jsonArr.filter((item: any) => {
if (item.length > 0) {
return item;
}
})
// 读取到文件名称、内容行数,提示用户
this.$confirm(`将上传【${uploadData.file.name}】,共${uploadFileContentList.length}行, 是否继续?`, '提示', {
confirmButtonText:
'确定',
cancelButtonText:
'取消',
type:
'warning'
}).then(()
=> {
this.uploadRequest(uploadData); // 调接口
}).catch(() => {
this.$message({
type:
'info',
message:
'已取消'
});
});
};
if (rABS) reader.readAsBinaryString(f); else reader.readAsArrayBuffer(f);
}
// 接口:上传
async uploadRequest(data: any) {
this.uploadAssignLoading = Loading.service({
fullscreen:
true,
text:
'上传中,请耐心等待...'
});
let
params = new FormData();
params.append('file', data.file); // 添加参数
await network.xxxApi.upload(params).catch(() => {
this.$nextTick(() => {
this.uploadAssignLoading.close();
});
this.$message({
type:
'info',
message:
'网络异常,请重试',
});
});
this.uploadAssignLoading.close(); // 关loading
this.$message({
type:
'success',
message:
'上传成功'
});
}
// 上传分配: 失败
uploadAssignError(data: any) {
this.uploadAssignLoading.close();
this.$message({
type:
'info',
message:
'异常,请重试',
});
}

 



推荐阅读
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 微信小程序实现拍照与图片上传功能
    本文介绍如何在微信小程序中实现用户通过拍照或从相册选择图片,并将图片上传至服务器的功能,包括调用相关API和处理上传响应。 ... [详细]
  • 现代软件工程开发体验:结对编程
    距现代软件工程开课已经3周,按照课程安排,在最近的9天中,我们进行了极限编程模式的体验:pairwork(结对编程,具体见链接),对象是在academicsearchmap上添加一些新特性。经过选 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • PHP 实现无刷新多图上传及远程图片处理
    本文详细介绍了如何使用 PHP 实现网页上的无刷新多图上传功能,同时支持远程图片的下载与处理。文章提供了具体的代码示例,并对关键函数进行了说明。 ... [详细]
  • 在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 探讨了在使用Layui框架时,如何处理表格中固定列与其他列行高不一致的情况,提供了有效的解决方案。 ... [详细]
  • Python库在GIS与三维可视化中的应用
    Python库极大地扩展了GIS的能力,使其能够执行复杂的数据科学任务。本文探讨了几个关键的Python库,这些库不仅增强了GIS的核心功能,还推动了地理信息系统向更高层次的应用发展。 ... [详细]
  • 本文介绍了如何在VB.NET版机房收费系统中实现数据从DataGridView导出至Excel的功能,包括环境配置、代码实现及常见问题解决方法。 ... [详细]
  • 本文从数据埋点的设计者视角出发,全面解析数据埋点的技术原理、应用场景及其管理方法,涵盖基础知识、实施策略、数据处理流程等内容。 ... [详细]
author-avatar
仲颖凯翰奕颖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有