Javascript 无法将数据(addRow)写入Nodejs中的Excel文件

Javascript 无法将数据(addRow)写入Nodejs中的Excel文件,javascript,node.js,exceljs,Javascript,Node.js,Exceljs,我正在尝试使用ExcelJS库将数据写入Excel文件。我成功地创建了工作表并添加了列数据 但是,在尝试实现addRow()或addRows()方法时,数据不会添加到Excel工作表中 以下是我尝试的代码: const ExcelJS = require('exceljs'); var workbook = new ExcelJS.Workbook(); var worksheet = workbook.addWorksheet('Payment Data'); worksheet.co

我正在尝试使用ExcelJS库将数据写入Excel文件。我成功地创建了工作表并添加了列数据

但是,在尝试实现addRow()或addRows()方法时,数据不会添加到Excel工作表中

以下是我尝试的代码:

 const ExcelJS = require('exceljs');
 var workbook = new ExcelJS.Workbook();
 var worksheet = workbook.addWorksheet('Payment Data');
 worksheet.columns = reportHeaders; //reportHeaders is an array of header objects
我能够在excel工作表中看到成功创建的列。问题从下面开始,我正在尝试将数据(添加到行中):

第一种方法:

  worksheet.addRows(excelData);//excelData is an array of data objects
第二种方法:

  for(var rowItem in excelData){
  worksheet.addRow(excelData[rowItem]);}
然而,这两种方法似乎都不适合我。 最后,保存文件:

  workbook.xlsx.writeFile('PaymentData.xlsx')

我有什么遗漏吗?任何帮助都将不胜感激。

我成功地将对象转换为数组,并将其传递给addRow方法。 这对我有用


我仍然不确定为什么无法将对象数组传递给addRow方法。

我成功地将对象转换为数组,并将其传递给addRow方法。 这对我有用


我仍然不确定为什么无法将对象数组传递给addRow方法。

因此,代码的问题是,您试图将数据添加到列中,但没有在
数组中指定
属性,因此无法添加数据

我修改了
工作表.columns
数组,如下所示:

worksheet.columns=[
{标题:“A”,键:“A”},
{标题:“B”,键:“B”},
];

这将解决您的问题

因此代码的问题是,您试图将数据添加到列中,但未在
数组中指定
属性,因此无法添加数据

我修改了
工作表.columns
数组,如下所示:

worksheet.columns=[
{标题:“A”,键:“A”},
{标题:“B”,键:“B”},
];

这将解决你的问题

你能在网站上为项目创建一个在线工作演示吗?这样会很有帮助。尝试了类似的方法后,你可以将答案标记为已接受的答案,如果这对你有效。你能在网站上为项目创建一个在线工作演示吗?那样会更好有帮助。尝试了类似的方法,但没有成功。如果对您有效,您可以将答案标记为已接受的答案。因为您没有为标题定义键,所以它不知道每个对象字段将映射到哪个列。请参阅Vibhor的回答,因为您没有为标题定义键,所以它不知道每个对象字段将映射到哪个列。见Vibhor的回答,将该回答标记为正确(部分);除了添加
属性外;当我给
excelData
数组赋值时,我把它赋值错了。应将值赋值给
属性,而不是列
标题
。我所做的:
excelData[row].headerName=value我所更正的:
excelData[row].key=value
(key是与headerName相对应的
key
属性的值)将此答案标记为正确(部分);除了添加
属性外;当我给
excelData
数组赋值时,我把它赋值错了。应将值赋值给
属性,而不是列
标题
。我所做的:
excelData[row].headerName=value我所更正的:
excelData[row].key=value
(key是与headerName对应的
key
属性的值)