【问题标题】:Trigger calculation in JavaScript API for ExcelJavaScript API for Excel 中的触发器计算
【发布时间】:2016-05-07 13:42:46
【问题描述】:

我正在尝试使用JavaScript API for 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));
        }
});

【问题讨论】:

    标签: excel office-js javascript-api-for-office


    【解决方案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

    希望这会有所帮助!

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

    【讨论】:

    • 在VBA中,我们可以recalculating a specified range,你确定JavaScript API不可能吗?太可惜了……
    • Excel COM(VBA 和 .NET 互操作)接口在应用程序级别(所有打开的工作簿)、单个工作表和范围(有或没有依赖项)公开计算,并允许控制计算模式。 JS API 目前不允许控制计算,只能在应用程序级别启用计算,即使 JS API 仅适用于单个工作簿级别。希望 JS API 在未来某个时候能够与所有其他 EXCEL API 更紧密地保持一致。
    • 关于应用程序级重新计算与仅工作簿级访问相比,这是一个公平的观点。我会向团队提及,看看我们是否可以添加工作表级别、工作簿级别甚至范围级别的重新计算。
    • 谢谢 Michael 和 Charles... 我认为 formulas 和他们的 calculation 是使 Excel 成为一种编程语言而不是数据库的重要组成部分。所以它真的值得(在不同级别)提供......
    • 一件事是重新计算公式。另一个需要是能够将计算从手动切换到自动,就像 VBA 一样。如果我们从代码中粘贴和同步大量数据,同步操作会花费大量时间。我们应该能够: 1. 通过将计算模式设置为“手动”来关闭计算 2. 然后粘贴代码中的数据。 3. 通过将计算模式设置为“自动”来打开计算。等待类似的东西。 PS:道歉!以前的评论是一半。删除了它。按下回车键并没有换行而是提交。这个评论可以是一个新问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多