4

我正在开发一个Excel作为Office 应用程序的软件,使用office.js.

在某些方面,我正在连接到 excel 中的一个表,以检查其数据是否使用以下代码更改:

myBinding.addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged);


function onBindingDataChanged(eventArgs) {
    // eventArgs has just the binding info.
    // I want to have selected cell row and column, and old and new data.
}

不幸的是,其中的信息eventArgs不足以让我检测到变化。值得一提的是,对于 Office.EventType.Binding Selection Changed,有很多可用信息,例如startRow, startColumn, ....

所以我的问题是:如何访问这些信息:

  • 更改行
  • 更改列
  • 旧数据
  • 新数据
4

1 回答 1

1

我也创建了一个excel应用程序。您可以获取当前数据并将它们与旧数据进行比较。然后将新数据保存为旧数据。

var oldData = null;

function onBindingDataChanged(eventArgs) {
    var id = eventArgs.binding.id;
    Office.select('bindings#'+id).getDataAsync(handleNewData);
}

function handleNewData(asyncResult) {
    var newData = asyncResult.value;

    if (oldData != null) {
        // detect changes here
    }

    oldData = newData;
);
于 2015-06-16T16:29:08.260 回答