1

我使用 Excel4node 库创建了一个 Excel 电子表格,然后用必要的数据填写了这个电子表格。

var excel = require('excel4node');
var workbook = new excel.Workbook();
var worksheet = workbook.addWorksheet('Sheet 1');

然后,我希望用户能够下载此电子表格并在 Microsoft Excel 中打开它。

workbook.write("Excel.xlsx", res);

此代码在 FireFox 浏览器中有效,但在 Google Chrome 或 Microsoft Edge 中不提示下载。谁能帮我解决这个问题?任何帮助将非常感激!

4

1 回答 1

2

忘记设置content-type标题,否则浏览器必须猜测。

wb.writeToBuffer()
  .then(function(buffer) { 
   const filename = 'Testing workbook.xlsx'
    res
      .set('content-disposition', `attachment; filename="${filename}";  filename*=UTF-8''${encodeURI(filename)}`) // filename header
      .type('.xlsx') // setting content-type to xlsx. based on file extention
      .send(buffer) 
  });
于 2021-03-17T11:10:17.423 回答