zoukankan      html  css  js  c++  java
  • EasyPoi导入数据后,导出发生错误的数据报[object Object]

    后台输出流到前端

    //有错误信息,就导出文件
                if (errorList != null && errorList.size() > 0) {
                    String title = "导入国产药数据的异常数据";
                    ExcelUtils.exportExcel(errorList, title, title, StandardCode.class, title, response);
                    return null;
                }

    在响应拦截器中加以下代码:

    if (headers['content-type'].toLowerCase() === 'application/vnd.ms-excel;charset=utf-8') {
              return response
          }

    如果不加这段代码会报错:

    No converter for [class com.ljxx.entity.Result] with preset Content-Type 'application/vnd.ms-excel;charset=UTF-8'

    由于上述代码返回的是response,故使用filedownload下载的时候应该为response.data

    handleUploadChange1(file) {
          if (file.name.lastIndexOf('.') < 0) {
            this.$message.error('上传文件只能是xls、xlsx格式!')
            return
          }
          const testMsg = file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase()
          const extensionXLS = testMsg == 'xls'
          const extensionXLSX = testMsg == 'xlsx'
          if (!extensionXLS && !extensionXLSX) {
            this.$message.error('上传文件只能是xls、xlsx格式!')
            return
          }
          const isLt2M = file.size / 1024 / 1024 < 2
          if (!isLt2M) {
            this.$message.error('上传文件不能超过 2MB!')
            return
          }
          console.log('import continue')
          this.importLoading = true
          this.importDisabled = true
          const data = new FormData()
          data.append('file', file.raw)
          standardCode.importDomesticExcel(data).then(response => {
            console.log(response)
            if (response.success) {
              this.open2(response.msg)
              this.importLoading = false
              this.importDisabled = false
              this.getList()
            } else {
              this.$message.success("部分数据导入失败,数据已下载到本地,请查看!")
              fileDownload(response.data, '导入数据中的异常数据.xlsx')
              // this.open2(response.msg)
              this.importLoading = false
              this.importDisabled = false
            }
          }).catch(() => {
            this.open2('抱歉,导入失败')
            this.importLoading = false
            this.importDisabled = false
          })
        },

     如果报错文件打不开,如下:

     是因为responseType值应为arraybuffer,而不能是arraybuffer;charset=utf-8

    importDomesticExcel(data) {
        return request({
          url: '/standardCode/import',
          method: 'post',
          data: data,
          responseType: 'arraybuffer',
          headers: {
            'Content-Type': 'multipart/form-data'
          }
        })
      },
  • 相关阅读:
    MFC tab页面中获到其它页面的数据
    sqlite数据库中"Select * From XXX能查到数据,但是Select DISTINCT group From xxx Order By group却查不出来
    关闭程序出现崩溃(exe 已触发了一个断点及未加载ucrtbased.pdb)
    springboot 通用Mapper使用
    springBoot 发布war包
    springCloud Zuul网关
    springboot hystrix turbine 聚合监控
    springBoot Feign Hystrix Dashboard
    springBoot Ribbon Hystrix Dashboard
    springBoot Feign Hystrix
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15176126.html
Copyright © 2011-2022 走看看