javascript 无法从API - xlsx/csv下载excel文件

7ajki6be  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(188)

我从API返回工作簿作为arraybuffer,然后尝试下载到带有blob的react端。
它下载文件,但csv文件有一堆数字,而不是正确的数据。

当前输出

{类型:“缓冲区”,数据:[六十七、四十、三、十......]

-来自API

....
 return await workbook.csv.writeBuffer()

-React侧

const handleDownload = async() => {
    const response= await userHelper.getExcel()

    saveAs(new Blob([response?.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), 'deneme.csv');
  }
mzmfm0qo

mzmfm0qo1#

您的响应类似ArrayBuffer,因此请将responseType添加到config:

axios.get(
    "http://localhost:5000/folder.zip", //hosted with server
    { responseType: 'arraybuffer' }))
.then(res => {
      const file = new Blob([res], { type: 'text/csv' }
      let url = URL.createObjectURL(file);
      let a = document.createElement('a');
      a.href = url;
      a.download = 'deneme.csv';
      a.click();
      window.URL.revokeObjectURL(url);
});

希望能有所帮助

相关问题