Цель состоит в том, чтобы записать формулу (пользовательскую функцию) в ячейку, вычислить ее , загрузить значения и извлечь их в одной функции.
function myFunc() {
Excel.run(function (ctx) {
var fExcel = '=SUM(1,2)';
var fCustom = '=custFunc()';
var rng = ctx.workbook.worksheets.getActiveWorksheet().getRange('A1');
//rng.formulas = [[fExcel]]; // works OK
rng.formulas = [[fCustom]]; // values are #GETTING_DATA
// try different calc calls
rng.load("values");
return ctx.sync().then(function () {
console.log(rng.values);
});
});
}
Для встроенных функций Excel все работает как положено, и console
записывает значение 3 после ctx.sync()
. Для пользовательских функций (которые отправляют запрос на внешний сервер для вычисления результата) значения равны '#GETTING_DATA'
. Я пробовал все следующие вещи до rng.load("values");
, чтобы вызвать вычисления, но пока ничего не получалось:
Есть ли способ запустить расчет пользовательских функций и убедиться, что значения доступны после ctx.sync()
?