使用office.js访问Excel中BindingDataChanged事件和单元格位置中的旧单元格值(Office加载项)

时间:2016-01-05 05:46:32

标签: javascript excel office365 office-addins office-app

我在Excel中有一个表,我想在用户修改单元格值时检测更改。为了反映这些特定的变化,我需要知道细胞位置和旧细胞值。我能够在Excel VBA / COM加载项中实现这一点,但不能使用JavaScript。

1 个答案:

答案 0 :(得分:3)

此时没有任何直接的方法来获取位置和旧单元格值。但是有一些解决方法可以使用,直到有更好的方法:

- 跟踪用户表的内容:您可以在第一次链接到加载项时获取整个表。添加绑定并侦听BindingDataChanged事件以检测更新。每次有更新时,您都可以手动将其与自己的副本进行比较。重新启动加载项后,您可以使用Settings对象重新初始化内存中的副本。

- 使用BindingSelectionChanged事件和Document.SelectionChanged事件跟踪用户在表格中的选择。然后,每当表中的数据发生变化时,使用保存的BindingSelectionChangedEventArgs确定用户进行更改时选择了哪个单元格。请注意,即使用户什么都不做,也可能发生对表的更改 - 例如,另一个加载项可能会更改内容。另请注意,BindingSelectionChangedEventArgs报告用户选择更改后的最终位置,而不是初始位置,因此每当用户更改单元格时,您都需要使用倒数第二个位置,但要将其选择保留在表格中。

此外,您可能实际上不需要使用上面的解决方法,具体取决于您的加载项正在执行的操作:例如,如果表很小,您可以在发生更改时完全覆盖必要的列。

-Michael(加载项团队的项目经理)