我有一个Word加载项(API 1.3)项目,我可以在其中插入表并使其成为内容控件。我使用以下代码来识别用户是否在表中单击或选择其任何单元格。
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged,
function() {
Word.run(function(ctx) {
var ctrl = ctx.document.getSelection().parentContentControl;
return ctx.sync()
.then(function() {
if (!ctrl.isNull) { // found - clicked inside the control
// ... load some properties, ...
ctrl.load('tag'); // How to get startRow, startCol, rowCount, colCount?
ctx.sync()
.then(function() {
console.log(ctrl.tag);
}).catch(function(err) {
console.log(err);
});
}
}).catch(function(err) {
console.log(err);
});
});
});

有没有办法从这里获取startRow,startCol,rowCount,colCount,就像在selectionChanged的绑定事件处理程序中一样?
答案 0 :(得分:1)
感谢您分享此问题。您的代码有2个问题:
查看以下代码,了解如何创建表绑定以及如何使用处理程序上的eventArgs来获取所需的信息(另请注意,如果您有作为标题的行,您将未定义表中定义的标题):
Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Table, function (result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
// after creating the binding i am adding the handler for the BindingSelectionChanged, check out eventArgs usage....
var binding = result.value;
binding.addHandlerAsync(Office.EventType.BindingSelectionChanged, function (eventArgs) {
app.showNotification('Selection Coordinates: ' + eventArgs.startColumn + " " + eventArgs.columnCount + " " + eventArgs.startRow + " " + eventArgs.rowCount);
});
}
});

希望这会让你朝着正确的方向前进。谢谢! 涓。