我正在尝试从后端创建并下载Excel文件。我正在使用node js和express js。尝试使用exceljs实现此目的。但是我无法使其工作。我曾尝试在SO中搜索此处,但尚未获得任何解决方案。
我正在使用以下代码:
const Excel = require('exceljs'),
tempfile = require('tempfile')
let workbook = new Excel.Workbook();
let worksheet = workbook.addWorksheet('My Sheet'), fileName = 'FileName.xlsx';;
worksheet.columns = [
{ header: 'Id', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 10 }
];
let rows = [
{id:6, name: 'Barbara', dob: new Date()}
];
worksheet.addRows(rows);
let tmp = tempfile('.xlsx');
workbook.xlsx.writeFile(tmp).then(function() {
console.log('file is written');
response.download(tmp, function(err){
console.log('---------- error downloading file: ' + err);
});
});
我尝试了sendFile而不是下载,但是它不起作用。在浏览器的响应中,我看到了一些奇怪的输出。而且没有下载。
有人可以指出我在做什么错吗?
编辑
我也尝试添加以下代码,但没有帮助。
response.setHeader('responseType' , 'arraybuffer');
response.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
response.setHeader('Content-Disposition', 'attachment; filename=' + fileName);