vue2项目实现excel文件导入导出和拖拽上传

本文详细描述了如何使用axios和file-saver库实现Excel文件的导出(生成Blob并下载)以及导入功能,包括通过文件选择、拖拽上传,并展示了Vue组件中的相关代码片段。


文件导入导出实现逻辑图:
在这里插入图片描述

一、excle文件导出

在这里插入图片描述

  • 导出员工接口返回的是二进制流
  • axios配置responseType为blob接收二进制流文件为Blob格式
  • 安装file-saver包,实现下载Blob文件 yarn add file-saver
  • 封装导出员工excel的API-代码位置
//excel模板下载接口
export function exportTemplate(){
   
   
	return request({
   
   
		url:/cms/userSession/enterprise/enterpriseConfigImportTemplate",
		method:'post',
		responseType:'blob',// 改变接收数据的类型,使用blob接收二进制文件流
	})
}
  • 拦截器判断是不是blob类型,如果是直接返回数据,不再进行解构-代码位置(src/utils/request.js)
// 响应拦截器
service.interceptors.response.use((response) => {
   
   
  // axios默认包裹了data
  // 判断是不是Blob
  if (response.data instanceof Blob) return response.data // 返回了Blob对象
  const {
   
    data, message, success } = response.data // 默认json格式
  if (success) {
   
   
    return data
  } else {
   
   
    Message({
   
    type: 'error', message })
    return Promise.reject(new Error(message))
  }
},
  • 安装file-saver
$ npm i file-saver
$ yarn add file-saver
  • 点击“下载模版”按钮调用接口,使用file-saver将blob转化成文件下载-代码位置
// 员工下载模版-----------------------
    async downloadEmployee() {
   
   
      const blob = await downloadEmployee()
      FileSaver
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值