Node.js Express:响应下载XLSX附件的奇怪字符

时间:2019-07-18 09:33:39

标签: node.js excel express xlsx xlsx-populate

我正在将xlsx-populate模块与node.js一起使用。我将工作簿作为缓冲区发送,如其站点上所述。我正在使用邮递员访问API并获取xlsx文件作为附件。但是我得到的响应具有奇怪的字符,如下所示:

�2�N��N��+xl/drawings/drawing1.xml����0��>ٻ=C���@`ChB�M�
��M���8�̗�����ً��5��2��i
const workbook = await XlsxPopulate.fromFileAsync(filename);

// await workbook.toFileAsync(outfile);
const data = await workbook.outputAsync();

res.attachment("output.xlsx");
res.send(data);

当我使用await workbook.toFileAsync(outfile);将文件保存在本地时,一切正常,我可以读取文件。 但是,当我尝试使用命令res.attachment("output.xlsx");res.send(data);发送文件进行下载时,在对Postman的响应中出现了奇怪的字符。

响应头具有11个属性,其中包括:

content-disposition -> attachment; filename="output.xlsx"
content-type -> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

xlsx-populate的GitHub页面上也提到了使用express下载xlsx文件的类似步骤: https://github.com/dtjohnson/xlsx-populate#serving-from-express

1 个答案:

答案 0 :(得分:0)

尝试使用Postman中的“发送并下载”按钮,只需单击“发送”按钮上的向上箭头,您应该会看到此选项。

Send and download

然后,当您发送请求时,系统将提示您下载“ output.xlsx”文件。

我认为您不需要进行任何编码更改。