目的是将公式(自定义函数)写入单元格,计算它,加载值并在单个函数中检索它们。
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
在ctx.sync()
. 使用自定义函数(向外部服务器发送请求以计算结果)的值为'#GETTING_DATA'
. 我之前尝试过以下所有方法rng.load("values");
来触发计算,但到目前为止没有任何效果:
rng.calculate();
var s = ctx.workbook.worksheets.getActiveWorksheet(); s.calculate(true);
ctx.workbook.application.calculate('Full');
有没有办法触发自定义函数的计算并确保值在ctx.sync()
?