Javascript Excel电子表格未下载
我使用Excel4node库创建了一个excel电子表格,然后用必要的数据填写了该电子表格Javascript Excel电子表格未下载,javascript,node.js,excel,browser,excel4node,Javascript,Node.js,Excel,Browser,Excel4node,我使用Excel4node库创建了一个excel电子表格,然后用必要的数据填写了该电子表格 var excel = require('excel4node'); var workbook = new excel.Workbook(); var worksheet = workbook.addWorksheet('Sheet 1'); 然后,我希望用户能够下载此电子表格并在Microsoft Excel中打开它 workbook.write("Excel.xlsx", res
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中不会提示下载。有人能帮我解决这个问题吗?任何帮助都将不胜感激 忘记设置
内容类型
标题,否则浏览器必须猜测
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)
});
使用它而不是
workbook.write(“Excel.xlsx”,res)
wb.writeToBuffer().then(函数(缓冲区){res.send(缓冲区)})代码>我尚未测试,但应该work@Ajith-非常感谢你的答复。刚刚在Edge中测试过,它成功地提示下载。但是,它不会将文件创建为电子表格。也在Chrome上测试过,没有任何下载提示。这在Google Chrome和Mozilla FireFox上都能完美运行。但奇怪的是,在Microsoft Edge中,用户没有得到下载提示,知道原因吗?将内容配置
标题行更改为.set('content-disposition','attachment;filename=“${filename}”;filename*=UTF-8'${encodeURI(filename)}')
。如果这仍然不能像预期的那样工作,他们会在docs.google.com/spreadsheets
中干下载(导出到.xlsx)一些电子表格,如果这也不能正确提示下载,那么我不知道该怎么做。是的,谢谢你,现在所有这些浏览器都能正常工作了!