如何使用office.js访问更改的数据

时间:2015-04-27 15:40:12

标签: javascript excel office-js office-app

我正在Excel上使用office.js作为 Office for Office 开发软件。

对于某些部分,我在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 选择已更改,有许多可用信息,例如startRow, startColumn, ...

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

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

1 个答案:

答案 0 :(得分: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;
);