vue导入excel

1、大体样子
在这里插入图片描述
2、接口部分采用的时postFile

/**
 * 上传文件
 * @param url
 * @param params
 * @returns {*}
 */
export const postFile = async function(url, formdata) {
  let res = await axios({
    url: url,
    method: 'post',
    data: formdata,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      authenticator: getAuthenticator(),
    },
  });
  return responseHandler(res);
};

3、页面部分–流程点击“浏览”,input中展示文件名,点击“导入”传入相关文件。

    <Modal title="导入客流上限" v-model="displayImportModal">
      <div class="lead-modal-content">
        <Input :value="fileName" :readonly="true" class="filename-display" />
        <Upload
          action
          :show-upload-list="false"
          accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
          :before-upload="getFile"
          class="btn-upload"
        >
          <Button>浏览</Button>
        </Upload>
      </div>
      <div slot="footer" class="modal-footer">
        <Button @click="exportTemplate">下载模板</Button>
        <Button type="primary" @click="importExcel">导入</Button>
      </div>
    </Modal>
  /**
   * 获取上传的文件
   */
  getFile(file){
    this.file = file;
    this.fileName = file.name;
    return false;
  },
    /**
   * 导入目标excel
   */
  async importExcel(){
    if (this.file == null) {
      //提醒没有相关文件
      return;
    }
    let file = new FormData();  //导入excel的重点
    file.append('file',this.file); //导入excel的重点
    try {
      const res = await apis.importUpperLimitExcel(file);//将相关文件放入接口中
      this.clearFile();
    } catch(e) {
      this.clearFile();
    }
  },
  //清除文件,以及文件名
  clearFile(){
    this.file = null;
    this.fileName = null;
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值