一文解决Vue中实现 Excel下载到本地以及上传Excel
相信大家在项目中经常会遇到一些上传下载文件的相关功能,本文就Excel的相关功能进行简述:

咱直接看代码:
<div class="import-main-content">
<div class="import-main-button" @click="checkFile">
<div class="import-center" style="cursor: hand">
<div>+</div>
<div>上传Excel文件</div>
</div>
</div>
<div style="margin: 5px auto; width: 350px">
<div class="image-multiple-area" v-if="fileName">
<span>{{ fileName }}</span>
<img
@click="removes"
style="position: absolute; top: -1px; right: -1px"
src="@/assets/icons/tag-remove-icon.png"
class="remove-excel"
alt=""
/>
</div>
<div v-else>尚未选择文件!</div>
<div class="import-notice">注意:</div>
<div class="import-notice">
1. 请按照Excel表格模板内字段格式进行上传
</div>
<div class="import-notice">2. 导入表格数量控制在10000条以内</div>
<div class="import-notice">
3. Excel表格模板点击下载:<span
style="color: #277cf0"
@click="downLoadModel"
>Excel表格模板</span
>
</div>
</div>
<input
type="file"
id="fileinput"
style="display: none"
@change="checkFileSure"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
/>
</div>
data () {
return {
fileName: "", //Excel文件
fileDir: "", //Excel文件路径
}
},
checkFile() {
document.querySelector("#fileinput").click();
},
checkFileSure() {
let fileObj = document.querySelector("#fileinput").files[0];
let file = document.querySelector("#fileinput");
if (fileObj) {
this.fileName = fileObj.name;
// 文件类型
let fileType = fileObj.type;
let fileSize = fileObj.size;
// 文件大小
if (
!(
fileType === "application/vnd.ms-excel" ||
fileType ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
) {
this.msgError("上传文件仅支持 Excel 格式!");
file.value = "";
return false;
} else if (fileSize / 1024 / 1024 > 50) {
this.msgError("文件大小超过50M!");
file.value = "";
return false;
}
this.importDone();
} else {
this.$message.error("请选择导入的excel文档!");
return false;
}
},
//下载Excel模版
downLoadModel() {
//getImportTempFile4Prize 为下载excel 模板接口
getImportTempFile4Prize().then((res) => {
window.location.href = `${this.$store.state.weShop.IMGHEAD}${res.URI}`;
});
},
importDone() {
if (this.fileName == null || this.fileName === "") {
this.$message.error("请选择导入的excel文档!");
return;
}
let fileObj = document.querySelector("#fileinput").files[0];
console.log(fileObj.name);
let file = document.querySelector("#fileinput");
console.log(file);
if (fileObj?.name) {
let formData = new FormData();
formData.append("file", fileObj);
formData.append("upload_type", "02");
let fileType = fileObj.type.split("/")[1];
// uploadExcel 为后台上传Excel 接口
uploadExcel(formData, fileType)
.then((res) => {
file.value = "";
this.fileDir = res.PATH;
this.form.PRIZE_NUM = res.NUM;
})
.catch(() => {
file.value = "";
})
.then((res) => {});
document.querySelector("#fileinput").value = "";
} else {
this.$message.error("请选择导入的excel文档!");
document.querySelector("#fileinput").value = "";
this.fileName = "";
return false;
}
},
以上逻辑在后台接口,前端主要做的是一些简要的操作,需要上传Excel的话需要先上传到服务器才行。作为一个CV工程师相信上面代码对你有益的话就赶紧拿去使用吧。
一文解决Vue中实现 Excel下载到本地以及上传Excel的更多相关文章
- ftp 根据特定正则匹配文件名 下载到本地 并且上传文件到ftp java *** 最爱那水货
/** * 建立FTP链接,FTP服务器地址.端口.登陆用户信息都在配置里配置即可. * @throws IOException */ public boolean connectFtp(String ...
- 解决vue中百度地图覆盖物引用本地图片问题
这次的主要目的是在百度地图中引用自定义的覆盖物,路径是再asset/images/文件夹下,直接引用出错.需要先导入再引用. 在<script></script>代码中增加如下 ...
- vue中基于sortablejs与el-upload实现文件上传后拖拽排序
今天做冒烟测试的时候发现商品发布有一个拖拽图片排序功能没做,赶紧加上 之前别的同事基于 vuedraggable 实现过这个功能,我这里自己深度封装了 el-upload ,用这种方式改动很大,而且感 ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- layui上传Excel更新数据并下载
前言: 最近做项目遇到了一个需求,上传Excel获取数据更新Excel文档,并直接返回更新完的Excel到前端下载:其实需求并没有什么问题,关键是前端用到的是layui上传组件(layui.uploa ...
- 下载模板,上传EXCEL
说道SAP里对EXCEL操作的大概就是上传,下载,显示了... 下载:(文档是通过SMW0上传的)注:如果下载的时候需要填充EXCEL的值,...请参考另一篇文档,OLE CALL METHOD CL ...
- jmert中如何测试上传文件接口(测试上传excel文件)
第一次用jmeter这个工具测试上传接口,以前没做过这一块,导致走了很多弯路.特地把经验谢谢,怕自己以后忘记... 一,jmeter如何上传文件 jmeter 的 http requests post ...
- SpringBoot(十三)_springboot上传Excel并读取excel中的数据
今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...
- 上传excel数据到数据库中
上传excel表格数据到数据库 导入固定路径下的excel数据到数据库 <form id="disposeFlightDataForm" action="../up ...
随机推荐
- Bugku练习题---MISC---FileStoragedat
Bugku练习题---MISC---FileStoragedat flag:bugku{WeChatwithSteg0} 解题步骤: 1.观察题目,下载附件 2.下载后发现是一个后缀名为.dat的文件 ...
- Windows下使用 Docker 部署 RabbitMQ
安装 Docker 首先进入 https://docs.docker.com/desktop/windows/install/ 下载最新版 Docker,下载好后,双击进行安装,此处不对安装进行说明. ...
- 通过配置文件(.htaccess)实现文件上传
一·什么是服务器配置文件.htaccess 许多服务器还允许开发人员在各个目录中创建特殊的配置文件,以便覆盖或添加一个或多个全局设置.例如,Apache 服务器将从一个名为(.htaccess如果存在 ...
- CentOS 8配置本地yum源及DNF简介
CentOS 8更改了软件包的安装程序,取消了 yum 的配置方法,改而使用了dnf 作为安装程序.虽然改变了软件包的安装方式,但是 dnf 还是能兼容使用 yum 的配置文件和命令的使用方法. 小提 ...
- 流量录制回放工具jvm-sandbox-repeater入门篇——服务部署
趋于当前技术不断更新.产品功能多元化之下,流量回放的热度也是越来越高. 在前一段时间,测试团队也提到阿里开源的流量回放工具 jvm-sandbox-repeater 我个人就先尝试一下,期间还是遇到一 ...
- 离谱的 CSS!从表盘刻度到艺术剪纸
某日,群里有这样一个问题,如何实现这样的表盘刻度: 这其实是个挺有意思的问题,方法也有很多. 单标签,使用 conic-gradient 实现表盘刻度 最简单便捷的方式,就是利用角向渐变的方式 con ...
- HMS Core地理围栏能力助你实现指定范围人群的精准消息推送
精准推送是移动端产品留存阶段的主要运营手段,精准推送常常会与用户画像紧密结合,针对用户的喜好.画像,采用不同策略,但基于用户所属区域推送消息却很难实现.目前市面上大多数第三方消息推送服务商,在系统未深 ...
- Nginx的常用配置
Nginx配置文件结构 设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为 nobodyuser root; worker进程工作数设置,一般来说C ...
- Nginx的mirror指令能干啥?
mirror 流量复制 Nginx的 mirror 指令来自于 ngx_http_mirror_module 模块 Nginx Version > 1.13.4 mirror 指令提供的核心功能 ...
- 上半年最中意的 GitHub 更新「GitHub 热点速览 v.22.21」
2022 年的热点速览加入 GitHub 产品动态之后,这次的图片显示是最得我意的,因为可以提升图片查看人的看片体验.而 GitHub 社区方面,GitHub 官方发布了部分开源项目的新版本.与此同时 ...