Cuando el front-end exporta Excel y abre el archivo, indica: Hay un problema con algún contenido en "XXX.xIsx". ¿Le gustaría que intentemos recuperar tanto como sea posible? Haga clic en "Sí" si confía en la fuente de este libro.

 En este caso, este mensaje aparecerá primero, haga clic en No para salir directamente, haga clic en Sí, aparecerá otro mensaje de error

 El problema encontrado es que esta solicitud de axios carece de un comentario. Debe agregar el tipo de respuesta: 'blob' comentado a continuación a la solicitud y el archivo de Excel descargado se abrirá normalmente después de agregarlo.

// 导出用券列表
export function exportTicket(data) {
  return request({
    responseType: "blob",
    url: "/courtesycardlog/export",
    method: "post",
    data,
  });
}
// responseType: "blob",

Reponer:

Para el método de exportación correspondiente, la información rápida sobre el éxito o el fracaso de la exportación debe importarse a element-ui, si no se importa, simplemente elimínela.

handleExport() {
      this.$confirm("是否确定导出?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "info",
      })
        .then(() => {
          if (this.list.length) {
            // 这里填写接口及参数
            exportTerminalnode(this.queryParams).then((res) => {
              let blob = new Blob([res], {
                type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
              }); //type这里表示xlsx类型
              let downloadElement = document.createElement("a");
              let href = window.URL.createObjectURL(blob); //创建下载的链接
              downloadElement.href = href;
              let time = new Date().toLocaleString();
                // 记得更改导出时 excel 的 title
              downloadElement.download = ("门店信息" + time + ".xlsx").replace(
                new RegExp("/", "g"),
                "-"
              ); //下载后文件名
              document.body.appendChild(downloadElement);
              downloadElement.click(); //点击下载
              document.body.removeChild(downloadElement); //下载完成移除元素
              window.URL.revokeObjectURL(href); //释放掉blob对象
              this.$message({ type: "success", message: "下载成功" });
            });
          } else {
            this.$message({ type: "warning", message: "暂无数据" });
          }
        })
        .catch(() => {
          this.$message("取消导出");
        });
    },

Supongo que te gusta

Origin blog.csdn.net/z_langjitianya/article/details/128197310
Recomendado
Clasificación