VUE element-ui之导入excel模板至后端接口

简介: VUE element-ui之导入excel模板至后端接口

步骤:

  1. 按钮外包裹上传组件
    <el-upload
                ref="upload"
                class="filter-item"
                action="#" 
                :before-upload="beforeUpload"
                type="primary"
                :http-request="uploadOk"
                :on-change="uploadExcel"
                :show-file-list="false"
                :file-list="fileList"
                :limit="limitUpload" 这里注意!!!:limit为上传个数(如果为1,那么只能上传一次,除二次调用需刷新页面)
                accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
                :auto-upload="false"
              >
                <el-button type="primary" size="mini" icon="el-icon-bottom-right">Excel导入</el-button>
   </el-upload>

组件内属性方法详细介绍可参考饿了么文档这里不再赘述
2.定义所需变量

data() {
    return {
        fileList: [], //上传的文件列表, 例如: [{name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'}]
        limitUpload: 100, //允许上传次数(不刷新页面情况下)
    }
}

3.调用方法即可

//上传前校验(其实如果在accept中限制了格式,这一步可有可无---)
    beforeUpload(file) {
      // 文件类型
      console.log(`上传前校验---`, file)
      const isType = file.type === 'application/vnd.ms-excel'
      const isTypeComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
      const fileType = isType || isTypeComputer
      if (!fileType) {
        this.$message.error('上传文件只能是xls/xlsx格式!')
      }
      // 文件大小限制为2M
      const fileLimit = file.size / 1024 / 1024 < 2
      if (!fileLimit) {
        this.$message.error('上传文件大小不超过2M!')
      }
      return fileType && fileLimit
    },
    // 自定义上传(此方法我打印不出任何数据,注释了也不影响---)
    uploadOk(param) {
      // console.log(`上传成功---`, param)
      // const fileFormData = new FormData()
      // fileFormData.append('uploadFile', param.file)
      // console.log(`上传参数---`, param.file)
      // crudUser.uploadExcel(fileFormData).then(res => {
      //   console.log(`上传成功???---`, res)
      // })
    },
    // excel表上传(方法调用在此方法中)
    uploadExcel(file, fileList) {
      const fileTemp = file.raw
      const fileName = file.raw.name
      const fileType = fileName.substring(fileName.lastIndexOf('.') + 1)
      // 判断上传文件格式
      if (fileTemp) {
        if ((fileType === 'xlsx') || (fileType === 'xls')) {
          const formData = new FormData() //这一步不能变
          formData .append('uploadFile', file.raw)
          crudUser.uploadExcel(formData ).then(res => { //调用接口,传递参数。
            this.crud.refresh() //这里是封装的刷新方法,可以无刷新更新页面数据
            this.$message({
              message: res,//这里是后端返回的提示文字---
              type: 'success'
            })
          })
        } else {
          this.$message({
            type: 'warning',
            message: '附件格式错误,请重新上传!'
          })
        }
      } else {
        this.$message({
          type: 'warning',
          message: '请上传附件!'
        })
      }
    }

以上亲测有效,有不足之处请指出交流,希望能帮到您。
贴两张图:

在这里插入图片描述
我这里做的是一整套:下载excel导入模板--->excel导入--->exce导出(下载excel导入模板、导出excel没什么难度,可以参考我之前的博文excel导出

相关文章
|
4天前
|
JavaScript NoSQL Redis
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
这篇文章记录了在Vue中实现修改手机号和邮箱的大致流程,包括使用过滤器部分隐藏展示的手机号和邮箱,以及通过点击触发路由跳转的便捷方式。文章还描述了旧号码和新号码验证的界面实现,其中验证码由后端生成并通过弹窗展示给用户,未来可以接入真正的手机验证码接口。此外,还提供了修改邮箱的页面效果截图,并强调了学习是一个永无止境的过程。
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
|
1天前
|
JavaScript NoSQL Redis
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
这篇文章记录了在Vue中实现修改手机号和邮箱的大致流程,包括使用过滤器部分隐藏展示的手机号和邮箱,以及通过点击触发路由跳转的便捷方式。文章还描述了旧号码和新号码验证的界面实现,其中验证码由后端生成并通过弹窗展示给用户,未来可以接入真正的手机验证码接口。此外,还提供了修改邮箱的页面效果截图,并强调了学习是一个永无止境的过程。
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
|
4天前
|
JavaScript 前端开发
Vue中传递自定义参数到后端、后端获取数据(使用Map接收参数)
这篇文章讲述了如何在Vue中通过Axios二次封装传递自定义参数到后端,并展示了后端如何使用Map接收这些参数,以及如何避免参数转换错误和统一接口设计的方法。
|
5天前
|
存储 前端开发 JavaScript
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
本文介绍了使用Springboot后端和Vue前端实现图片与表单数据一起提交到后端,并保存图片地址到数据库,然后展示存储的图片到前端Vue页面的完整流程。
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
|
20天前
|
开发框架 前端开发 JavaScript
ABP框架测试信息---Winform端、动态网站、Vue&Element管理后端等
ABP框架测试信息---Winform端、动态网站、Vue&Element管理后端等
|
5天前
|
JavaScript 前端开发
Vue实现Element UI框架的自定义输入框或下拉框在输入时对列表选项进行过滤,以及右键列表选项弹出菜单进行删除
本文介绍了如何在Vue框架结合Element UI库实现自定义输入框或下拉框,在输入时对列表选项进行过滤,并支持右键点击列表选项弹出菜单进行删除的功能。
6 0
|
5天前
|
JavaScript 容器
Vue+Element UI
该博客文章介绍了如何在Vue中集成Element UI来构建后台管理系统的左侧菜单,包括使用`el-menu`、`el-submenu`和`el-menu-item`等组件,并通过Vue router动态构建菜单项及其路由设置。
|
7天前
|
JavaScript 前端开发 安全
VUE——APP,后端,前端三端AES加密解密
VUE——APP,后端,前端三端AES加密解密
18 0
|
19天前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
30 0
|
2月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第七讲表格数据高亮显示
杨老师课堂之Excel VBA 程序开发第七讲表格数据高亮显示
30 1

热门文章

最新文章