Office.js Excel:检测用户是否添加/删除列(或行)

时间:2019-01-09 20:39:17

标签: javascript angular typescript office-js excel-addins

我正在使用TypeScript在Angular中创建一个Excel加载项。外接程序的目标是将外接程序中的值绑定到电子表格并保存引用,以便用户知道他将值绑定到哪个工作表/单元格。

但是,如果用户插入或删除列(或行),则加载项中记录的单元格引用需要更新为新值。

这是一个例子: 假设用户将一个值绑定到单元格A1。外接程序中将显示该值的参考(A1)。现在,用户在位置A添加一个新列。以前在单元格A1中显示的值现在将在单元格B1中。但是,加载项仍将显示单元格A1作为参考。

我曾考虑过使用事件Office.EventType.DocumentSelectionChanged来检测文档中的更改。问题在于处理程序未指定工作表的哪一部分已更改,而且我看不到自己检查每个单元格是否有所更改,因为这会极大影响我的加载项性能。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

恕我直言,最好的方法是使用Excel的“已定义名称”(又名命名范围或命名项),而不是显式引用。这样一来,您就可以让Excel为您完成工作,而不是尝试使用事件在自己的代码中复制Excel已经完成的工作。

这是其他语言和API中推荐和最常用的技术