使用Blob在浏览器中下载Excel文件

时间:2019-07-06 08:38:16

标签: javascript node.js blob fs

我需要在浏览器中下载Excel文件。我在后端使用nodejs,在前端使用纯JavaScript。

我的API端点是“ https://callerid-lookup.herokuapp.com/download

/download/excel 


res.status(200);
var path = './report.xlsx';
fs.readFile(path, function (err, data) {
    res.setHeader('Content-disposition', 'attachment; filename=report.xlsx');
    res.setHeader('Content-type', 'application/vnd.ms-excel');
    console.log('server side1', data);
    res.send(data);
});

前端代码如下

 $.get("https://callerid-lookup.herokuapp.com/download", {
    responseType : 'ArrayBuffer'
},
    function (data, status) {
    console.log("Data: " + data + "\nStatus: " + status);
    var blob = new Blob([data], {
            type : 'application/vnd.ms-excel'
        });
    var link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);
    link.download = "report.xlsx";
    link.click();
});

我可以看到文件正在下载,但是在第一个单元格中下载的excel文件中只有[Object,Object]。

我尝试在http请求中将'responseType'设置为'arraybuffer / blog',但对我没有任何帮助,我们非常感谢

日志文件:

客户端接收数据:https://www.dropbox.com/s/w46o9gqt7z99bzt/client-response.txt?dl=0

服务器发送数据:https://www.dropbox.com/s/xu7nzelbjbmzjwj/server-response.txt?dl=0

已更新为示例API端点和jquery UI代码

0 个答案:

没有答案