我正试图获得以下数据的excel文件。但是,我的代码不起作用。有人知道吗,为什么?我没有得到任何结果或任何错误。它什么也做不了。此方法在控制器中。所以我从邮递员打电话给这个方法
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}`)
}在nestjs框架中使用nodejs。
发布于 2022-10-01 09:19:34
该代码基本上是有效的,并且工作正常。它有几个语法错误,仅此而已。
下面是与注释的语法错误相关的固定代码。
// Missing imports (possibly just not copy-pasted)
import { BadRequestException, Controller, Get, Header, Res } from "@nestjs/common";
import { Workbook } from "exceljs";
import * as tmp from "tmp";
@Controller('json-to-excel')
export class JsonToExcelController {
@Get()
@Header("Content-Type", "text/xlsx")
// Decorator @Res is provided by Nest to describe Response, not @Response.
async getExcel(@Res() res) {
let rows = []
let data = [{name: "shelly", surname: "shelly"}, {name: "shelly1", surname: "shelly1"},]
// Array was called as a function. It has method 'forEach' to iterate.
data.forEach(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}`)
}
}这就是问题所在吗?
https://stackoverflow.com/questions/73792855
复制相似问题