OfficeJS添加和更新绑定事件处理程序

时间:2018-01-04 15:40:31

标签: javascript office-js exceljs

我正在尝试创建一个绑定,以便我最终可以检查该单元格是否已更改进行一些AJAX调用。 documentation给出了一些我想要做的最简单的例子:

  Office.initialize = function(){
  $(document).ready(function() {
    Excel.run(function(context){
        // This should create a new binding and store it in the bindingsObject
        // add(range: Range or string, bindingType: string, id: string)
        context.workbook.bindings.add("Sheet1!A1:A2", "Range", "A_binding");

        // create a new event handler for this bindings
        Office.select("bindings#A_binding").addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged);


        $("#output").append("<br /><br /> Finished Pre-Sync");
        return context.sync().then(function(){
            $("#output").append("<br /><br />Post Sync")
        });
    }).catch(function(error){
        $("#debugger").append("error: " + JSON.stringify(error.debugInfo));
    })
  });
  }

  function onBindingDataChanged(eventArgs){
      Excel.run(function(context) {
          $("output").append("updated");
      })
  }

然而,当我更改单元格中的数据时,没有任何反应,没有错误,没有“更新”。这是创建绑定的错误方法吗?

1 个答案:

答案 0 :(得分:1)

以下代码为范围.Where创建绑定,然后为该绑定添加Sheet1!A1:A2事件处理程序。

onDataChanged

注意 :您可以使用脚本实验室(https://aka.ms/getscriptlab)自行快速轻松地尝试此代码段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下Gist URL:https://gist.github.com/kbrandl/a39042da654da0f2b1e1358631d9ca6a。此Gist包含JavaScript(方法名称以function registerDataChangedHandler_JS() { Excel.run(function (context) { var myBinding = context.workbook.bindings.add("Sheet1!A1:A2", "range", "A_binding"); myBinding.onDataChanged.add(onBindingDataChanged_JS); return context.sync() .then(function () { console.log("Created binding and added onDataChanged event for the binding."); }); }).catch(errorHandlerFunction); } function onBindingDataChanged_JS(eventArgs) { Excel.run(function (context) { console.log("Cells were updated!"); return context.sync(); }); } 结尾)和TypeScript(方法名称以_JS结尾)中的代码示例。

创建绑定并在加载加载项时添加事件处理程序:

_TS

(您可以在此处了解有关初始化事件的更多信息:https://docs.microsoft.com/en-us/office/dev/add-ins/develop/understanding-the-javascript-api-for-office#initializing-your-add-in。)

最后,帖子中的文档链接链接到GitHub上的文档源文件。为了获得更好的用户体验,我建议您使用文档站点本身:https://docs.microsoft.com/en-us/office/dev/add-ins。要从本文档站点获取API参考文档,请使用参考部分中的链接:

enter image description here

(以下是 Binding API参考文章的直接链接:https://dev.office.com/reference/add-ins/shared/binding。)