Невозможно записать данные (addRow) в файл Excel в Nodejs - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь записать данные в файл Excel с помощью библиотеки Excel JS. Мне удалось создать рабочий лист и добавить данные столбца.

Однако при попытке реализовать метод 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. Проблема начинается снизу, где я пытаюсь добавить данные (в строки):

1-й метод:

  worksheet.addRows(excelData);//excelData is an array of data objects

2-й метод:

  for(var rowItem in excelData){
  worksheet.addRow(excelData[rowItem]);}

Однако Мне кажется, что ни один из этих методов не работает. Наконец, файл сохранен:

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

Что-то мне не хватает? Любая помощь будет оценена по достоинству.

Ответы [ 2 ]

2 голосов
/ 11 июля 2020

Таким образом, проблема с вашим кодом заключалась в том, что вы пытались добавить данные в столбцы без указания свойства key в массиве columns, и, следовательно, не удалось добавить данные.

Я изменил массив worksheet.columns, чтобы он выглядел примерно так:

worksheet.columns = [
    { header: "A", key: "a" },
    { header: "B", key: "b" },
];

Это решит вашу проблему

0 голосов
/ 11 июля 2020

Мне удалось преобразовать объект в массив и передать его методу addRow. У меня это сработало.

Я до сих пор не понимаю, почему я не могу передать массив объектов в метод addRow.

...