gpt4 book ai didi

javascript - OfficeJS 添加和更新绑定(bind)事件处理程序

转载 作者:行者123 更新时间:2023-11-30 14:51:02 26 4
gpt4 key购买 nike

我正在尝试创建一个绑定(bind),以便我最终可以检查该单元格是否已更改并进行一些 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");
})
}

但是,当我更改单元格中的数据时,什么也没有发生,没有错误,也没有“更新”。这是创建绑定(bind)的错误方法吗?

最佳答案

以下代码为 Sheet1!A1:A2 范围创建一个绑定(bind),然后为该绑定(bind)添加一个 onDataChanged 事件处理程序。

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

注意:您可以使用脚本实验室 (https://aka.ms/getscriptlab) 自己快速轻松地尝试此代码段。只需安装 Script Lab 插件(免费),然后在导航菜单中选择“导入”,并使用以下 Gist URL:https://gist.github.com/kbrandl/a39042da654da0f2b1e1358631d9ca6a .此 Gist 包含 JavaScript(方法名称以 _JS 结尾)和 TypeScript(方法名称以 _TS 结尾)的代码示例。

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

Office.initialize = function (reason) {
$(document).ready(function () {
registerDataChangedHandler_JS();
});
};

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

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

enter image description here

(这里是Binding API 引用文章的直接链接:https://dev.office.com/reference/add-ins/shared/binding。)

关于javascript - OfficeJS 添加和更新绑定(bind)事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com