2016-05-07 32 views
0

我正在嘗試使用JavaScript API for Excel用於Excel的JavaScript API中的觸發器計算

有沒有人知道如何觸發計算爲單元格,範圍,工作表或工作簿?

例如,下面的代碼選擇一個範圍,但我們如何重新計算範圍?

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

回答

0

您可以重新計算應該完成您的方案的工作簿。對於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)); 
    } 
}); 

話雖這麼說,除非你的工作簿是在手動計算模式,應該沒有必要爲你強制重計算。所有相關的單元格應該自動更新。 https://github.com/OfficeDev/office-js-docs/blob/master/excel/resources/application.md#calculatecalculationtype-string

希望這有助於:在這裏的API

更多信息!

〜邁克爾Zlatkovsky,在Office擴展團隊開發,MSFT

+0

在VBA中,我們可以[重新計算指定範圍(https://msdn.microsoft.com/en-us/library/office/ff834613。 aspx?f = 255&MSPPError = -2147217396),您確定JavaScript API無法實現嗎?這將是一種恥辱...... – SoftTimur

+1

Excel COM(VBA和.NET Interop)接口在應用程序級別(所有打開的工作簿),單個工作表和範圍(具有或不具有依賴關係)下提供計算並允許控制計算模式。 JS API目前不允許控制計算,並且僅在應用程序級別啓用計算,即使JS API只能在單個工作簿級別上工作。希望JS API將在未來的某個時間與所有其他EXCEL API更緊密地配合。 –

+1

這是關於應用程序級重新計算而不是工作簿級訪問的公平點。我會向團隊提及它,看看我們是否可以添加工作表級,工作簿級或甚至範圍級重新計算。 –