vue excel上传与下载

上传

    <el-form-item label="批量创建">
           <el-upload
            ref="upload"
            class="upload-demo"
            :auto-upload="false" 
            accept=".xls, .xlsx"
            action
           
            :http-request="httpRequset"
            :file-list="fileList"
             >
             <a class="text_underline">点击选择文件!</a>
          </el-upload>
          <el-button type="text" class="template_down" @click="onExportTemplate">(点击下载模版)</el-button>
        </el-form-item>
      </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
         <el-button
            class="cancel" 
            @click="cancelForm('Form')"
            >取消</el-button
          >
          <el-button type="primary" class="submit" @click="submitExport">
            确定
          </el-button> 
      </div>
    </el-dialog>

    httpRequset(data) {
      this.$set(this.fileList, "0", data.file); // 储存选择的文件
    },

    submitExport(){
      this.$refs.upload.submit(); // 必要
      let fd = new FormData(); // 必要
      fd.append("file", this.fileList[0]);// 必要
      import(fd)
        .then(res => {
          const { code, data, message } = res;
          if (code == 200) {
            this.fileList = [];
            this.$message.success('导入成功');
          } else {
            this.$message.error('上传失败,将自动下载失败原因');
          }
        })
        .catch(e => {
          this.cancel();
        });
    },



// 上传接口
export const import= (data) => {
  return request({
    url: '/xxx/import',
    method: 'post',
    data,
  })
}

下载
 

// 下载
export const exportTemplate= (data) =>{
  return request({
    url: '/xxx/exportTmplate',
    responseType: 'arraybuffer', // 浏览器响应文件格式,下载必须
    method: 'get',
    params:data
  })
}


  //  下载模版
    onExportTemplate() {
      exportTemplate({},this.StageEntity.robotId).then(res => {
        let blob = new Blob([res.data], { type: "application/x-msdownload" });
        saveAs(
          blob,'导入模板.xlsx'
        );
      });},

接口

responseType: 'arraybuffer',  // 下载需要,上传不需要

method: 'get', // 一般下载get,上传post

下载用saveAs 插件处理文件流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值