How to CONVERT json data to excel file with nodejs

Viewed 29

I'm trying to get excel file of my data as below. However, my code doesn't work. Does anyone know, why? I don't get any result or any error. It just doesn't do anything. This method is in a controller. So I'm calling this method from postman

import {Workbook} from  "exceljs";
import * as tmp from  "tmp";

    @Get()
    @Header("Content-Type", "text/xlsx")
    async getExcel(@Response() res) {

        let rows = []

        let data = [{name: "shelly", surname: "shelly"}, {name: "shelly1", surname: "shelly1"},]
          
          data(doc => {
            rows.push(Object.values(doc))
          })

          let book = new Workbook();
          let sheet = book.addWorksheet(`sheet1`);
          rows.unshift(Object.keys(data[0]));
          sheet.addRows(rows)

          
          let File = await new Promise((resolve,reject) =>{
            tmp.file({discardDescriptor: true, prefix: `ExcelSheet`, postfix:`.xlsx`, mode: parseInt(`0600`,8)}, async (err, file) =>{
                if(err)
                    throw new BadRequestException(err);
                
                book.xlsx.writeFile(file).then(_ =>{
                    resolve(file)
                }).catch(err => {
                    throw new BadRequestException(err)
                })
            })
          })


          res.download(`${File}`)
    }

Using nodejs with nestjs framework.

0 Answers
Related