在react js中下载/保存文件

时间:2017-12-29 07:34:02

标签: javascript excel reactjs

如何保存来自api的响应,这会给我带有数据和名称的excel文件?

我在api下面给了excel文件,我必须保存在默认位置。

https://mydomain.dev.com/export

我已经浏览了网络上的多篇文章,但到处都解释为将数据保存为客户端的excel文件,这不是我的情况。对我来说,文件类型和名称已在服务器端决定,我必须按原样保存。

提前多多感谢

2 个答案:

答案 0 :(得分:0)

我总是使用这个脚本来执行此操作:

 function downloadFile(absoluteUrl) {
    var link = document.createElement('a');
    link.href = absoluteUrl;
    link.download = 'true';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    delete link;
 };

所以只是:

downloadFile("https://mydomain.dev.com/export");

它正在运作,但我希望有更好的解决方案。

答案 1 :(得分:0)

以下是我通常如何处理这个问题:

我首先获取文件,然后使用downloadjs下载blob

async downloadFile() {
  const res = await fetch("https://mydomain.dev.com/export");
  const blob = res.blob();

  // from downloadjs it will download your file
  download(blob, "file.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");  
}