exceljs-创建xlsx文件并下载不起作用-节点js和express js

时间:2019-01-02 13:11:02

标签: node.js express exceljs

我正在尝试从后端创建并下载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而不是下载,但是它不起作用。在浏览器的响应中,我看到了一些奇怪的输出。而且没有下载。

enter image description here

有人可以指出我在做什么错吗?

编辑

我也尝试添加以下代码,但没有帮助。

response.setHeader('responseType' , 'arraybuffer');
response.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
response.setHeader('Content-Disposition', 'attachment; filename=' + fileName);

0 个答案:

没有答案