javascript — оператор ‘& lt;’ нельзя применять к типам «число» и «обещание» с помощью надстройки Excel

Оператор ‘{amp}lt;’ не может быть применен к типам ‘number’ и ‘Promise {amp}lt;void{amp}gt;’ с помощью надстройки Excel

Первая проблема, поскольку getRowCount является асинхронным, он возвращает Promise

Вторая проблема, getRowCount фактически ничего не возвращает

 async function getRowCount() { let returnValue; await Excel.run(async(context) ={amp}gt; { const sheet = context.workbook.worksheets.getActiveWorksheet(); var rowCount = 0; for (var i = 0; i {amp}gt;= 0; i  ) { var cell = sheet.getCell(i, 0); cell.load("address, values"); await context.sync(); if (cell.values[0][0] == "") { break; } else { rowCount  ; } } await context.sync(); returnValue = rowCount; }); return returnValue; } 

Возможно, есть лучший способ сделать это, но я не знаю, как работает этот Excel.run и т. Д., Но до тех пор, пока Excel.run возвращает обещание, которое я предполагаю, потому что вы используете await тогда вышесказанное должно работать

и использование в вашем коде будет

 async function getData() { await Excel.run(async (context) ={amp}gt; { const sheet = context.workbook.worksheets.getActiveWorksheet(); let rowCount = await getRowCount(); var arrExport = Create2DArray(rowCount); for (var r = 0; r {amp}lt; rowCount; r  ) { . . . 

Должен сейчас работать

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector