При обращении к ячейке excel выпадает undefined

Работаю с Exceljs на node.js

await workbook.xlsx.readFile('./data/results/'+sortedData[i].name+'.xlsx')
.then(async () => {
let ws = workbook.getWorksheet('Лист1');
......
for (let row = 0; row < sortedData[i].results[j].results.length; row++) {
                    console.log('finding ', criteriaRows[row], 12+j);
                    let cell = ws.findCell(criteriaRows[row], 12+j); // Вот здесь
                    cell.value = sortedData[i].results[j].results[row];
                    cell.style = {font:{bold: true, name: 'Comic Sans MS'}};
                }
});

При обращении к ячейке с адресом 11 12 (L11) - ячейка определяется и значение доступно, при обращении к ячейке с адресом 12 12 (L12) - ячейка определяется и значение доступно, при попытке обращения к 14 12 (L14) в той же таблице - ячейка не определяется (undefined)

В чем может быть загвоздка? Возможно ли, что это связано с асинхронностью обращения, поскольку обращение к книге excel в первой строке выполняется также в цикле.


Ответы (1 шт):

Автор решения: Дмитрий Степовой

При сохранении файла xlsx, в параметры этого файла записываются те ячейки, которые были задействованы при редактировании таблицы. Ярким примером этого служит ситуация, когда удаляешь строки из таблицы, а полоса прокрутки продолжает быть большого размера, указывая на то, что могли остаться какие-то данные в удаленных строках.

Исправлено введением в "возможнозаполнямые" программно ячейки рандомных значений -> сохранением файла -> очисткой ячеек от значений и снова сохранением файла.

Файл запоминает, что ячейки были использованы и осуществляет их адресацию.

→ Ссылка