Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript API for Excel中的触发器计算_Excel_Office Js_Javascript Api For Office - Fatal编程技术网

JavaScript API for Excel中的触发器计算

JavaScript API for Excel中的触发器计算,excel,office-js,javascript-api-for-office,Excel,Office Js,Javascript Api For Office,我正在尝试使用 有人知道如何为单元格、区域、工作表或工作簿触发计算吗 例如,下面的代码选择了一个范围,但是我们如何重新计算这个范围呢 Excel.run(function (ctx) { var sheetName = "Sheet1"; var rangeAddress = "F5:F10"; var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress); range

我正在尝试使用

有人知道如何为单元格、区域、工作表或工作簿触发计算吗

例如,下面的代码选择了一个范围,但是我们如何重新计算这个范围呢

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));
        }
});

您可以重新计算工作簿,这将完成您的场景。对于JS API,它位于应用程序级别:

Excel.run(函数(ctx){
ctx.workbook.application.calculate('Full');
返回ctx.sync();
}).catch(函数(错误){
日志(“错误:+错误”);
if(OfficeExtension.error的错误实例){
log(“调试信息:+JSON.stringify(error.debugInfo));
}
});
也就是说,除非您的工作簿处于手动计算模式,否则您不需要强制重新计算。所有相关单元格都应自动更新

有关API的更多信息,请点击此处:

希望这有帮助


~Michael Zlatkovsky,Office扩展团队的开发人员,MSFT

在VBA中,我们可以,您确定JavaScript API不可能做到吗?这将是一个耻辱…Excel COM(VBA和.NET Interop)接口公开了应用程序级别(所有打开的工作簿)、单个工作表和范围(有或没有依赖项)的计算,并允许控制计算模式。JS API目前不允许控制计算,只允许在应用程序级别进行计算,即使JS API仅在单个工作簿级别工作。希望JSAPI在将来的某个时候能与所有其他EXCEL API更紧密地结合起来。这是应用程序级recalc与工作簿级访问的一个公平点。我会告诉团队,看看我们是否可以添加工作表级、工作簿级甚至范围级的recalc。谢谢Michael和Charles。。。我认为
公式
及其
计算
是使Excel成为编程语言而不是数据库的重要组成部分。因此,它确实值得(在不同级别)使用……一件事是重新计算公式。另一个需要是能够将计算从手动切换到自动,就像VBA一样。如果我们从代码中粘贴和同步大量数据,同步操作将花费大量时间。我们应该能够做到:1。通过将calculationMode设置为“Manual”2关闭计算。然后从代码中粘贴数据。3.通过将calculationMode设置为“自动”打开计算。等待类似的东西。附言:同位语!此前的评论只有一半。删除它。按enter键并没有放入新行,而是提交了一个新行。这是一个新问题吗?