Office.js Excel:检测用户是否 adds/removes 列(或行)
Office.js Excel: detect if user adds/removes columns (or rows)
我正在使用 TypeScript 在 Angular 中创建一个 Excel 加载项。加载项的目标是将加载项中的值绑定到电子表格并保存引用,以便用户可以知道他将值绑定到哪个 worksheet/cell。
但是,如果用户插入或删除一列(或一行),加载项中记录的单元格引用需要更新为新值。
举个例子:
假设用户将一个值绑定到单元格 A1。将在加载项中显示该值的引用 (A1)。现在,用户在位置 A 中添加了一个新列。以前显示在单元格 A1 中的值现在将显示在单元格 B1 中。但是,加载项仍会显示单元格 A1 以供参考。
我想到了使用事件 Office.EventType.DocumentSelectionChanged 来检测文档中的更改。问题是处理程序没有指定工作表的哪一部分发生了变化,而且我没有看到自己检查每个单元格以查看是否发生了某些变化,因为这会极大地影响我的加载项性能。
有什么建议吗?
恕我直言,最好的方法是使用 Excel 的定义名称(也称为命名范围或命名项)而不是显式引用。这样您就可以让 Excel 为您完成工作,而不是尝试使用事件复制 Excel 在您自己的代码中已经完成的工作。
这是其他语言和 API 中推荐和最常用的技术
我正在使用 TypeScript 在 Angular 中创建一个 Excel 加载项。加载项的目标是将加载项中的值绑定到电子表格并保存引用,以便用户可以知道他将值绑定到哪个 worksheet/cell。
但是,如果用户插入或删除一列(或一行),加载项中记录的单元格引用需要更新为新值。
举个例子: 假设用户将一个值绑定到单元格 A1。将在加载项中显示该值的引用 (A1)。现在,用户在位置 A 中添加了一个新列。以前显示在单元格 A1 中的值现在将显示在单元格 B1 中。但是,加载项仍会显示单元格 A1 以供参考。
我想到了使用事件 Office.EventType.DocumentSelectionChanged 来检测文档中的更改。问题是处理程序没有指定工作表的哪一部分发生了变化,而且我没有看到自己检查每个单元格以查看是否发生了某些变化,因为这会极大地影响我的加载项性能。
有什么建议吗?
恕我直言,最好的方法是使用 Excel 的定义名称(也称为命名范围或命名项)而不是显式引用。这样您就可以让 Excel 为您完成工作,而不是尝试使用事件复制 Excel 在您自己的代码中已经完成的工作。
这是其他语言和 API 中推荐和最常用的技术