Триггерный расчет в JavaScript API для Excel
Я пытаюсь использовать JavaScript API для Excel.
Кто-нибудь знает, как запустить расчет для ячейки, диапазона, рабочего листа или рабочей книги?
Например, следующий код выбирает диапазон, но как мы можем пересчитать диапазон?
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "F5:F10";
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.select();
return ctx.sync();
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
1 ответ
Решение
Вы можете пересчитать рабочую книгу, которая должна выполнить ваш сценарий. Для JS API это на уровне приложения:
Excel.run(function (ctx) {
ctx.workbook.application.calculate('Full');
return ctx.sync();
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
При этом, если ваша рабочая книга не находится в режиме ручного расчета, вам не нужно вызывать пересчет. Все зависимые ячейки должны обновляться автоматически.
Больше информации об API здесь: https://github.com/OfficeDev/office-js-docs/blob/master/excel/resources/application.md#calculatecalculationtype-string
Надеюсь это поможет!
~ Михаил Златковский, разработчик команды Office Extensibility, MSFT