Предположительно, параметры функции row
и cell
относятся к объектам, связанным с workbook
? Однако они потеряют это соединение в рамках анонимной функции, в которой вы пишете файл. (Технически говоря, JavaScript передает переменные в функции по значению, а не по ссылке.)
Вместо этого передайте информацию, необходимую для поиска ячейки, и получите ее локально в функции:
function readExcelFile(workbook, worksheetName, rowIndex, columnIndex, newData) {
workbook.xlsx.readFile('H://filename.xlsm')
.then(function () {
worksheet = workbook.getWorksheet(worksheetName);
row = worksheet.getRow(rowIndex);
cell = row.getCell(columnIndex);
cell.value = newData;
row.commit();
return workbook.xlsx.writeFile('H://newFile.xlsx');
});
}
readExcelFile(my_workbook, "My Worksheet", 3, 3, 34232);