js导出 excel,Office 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。

js导出 excel,Office 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。_第1张图片js导出 excel,Office 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。_第2张图片

不仅仅是需要设置 responseType: "blob", 更需要注意类型是否一致

js导出 excel,Office 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。_第3张图片

接口请求查看 Content-Type 是什么,前端做相应配置:

export function exportList(data) {
  return request({
    url: "/api/exportList",
    method: "get",
    params: data,
    responseType: "blob",
    "Access-Control-Expose-Headers": "filename",
    headers: {
      Accept: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    }
  });
}

具体页面代码如下:

exportList() {
      const params = {
        year: this.form.year,
      };
      exportList(params).then((res) => {
        const blob = new Blob([res], {
          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8",
        });
        const fileName = "a.xlsx";
        const elink = document.createElement("a");
        elink.download = fileName;
        elink.style.display = "none";
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        URL.revokeObjectURL(elink.href); // 释放URL 对象
        document.body.removeChild(elink);
      });
    },

你可能感兴趣的:(excel)