Office.js Excel: определить, добавляет ли пользователь / удаляет столбцы (или строки) - PullRequest
0 голосов
/ 09 января 2019

Я создаю надстройку Excel в Angular, используя TypeScript. Цель надстройки состоит в том, чтобы связать значения из надстройки с электронной таблицей и сохранить ссылку, чтобы пользователь мог знать, к какой таблице / ячейке он привязал значение.

Однако, если пользователь вставляет или удаляет столбец (или строку), ссылка на ячейку, записанную в надстройке, должна обновиться до нового значения.

Вот пример: Допустим, пользователь привязывает значение к ячейке A1. Ссылка (A1) будет отображаться для этого значения в надстройке. Теперь пользователь добавляет новый столбец в позицию A. Значение, ранее показанное в ячейке A1, теперь будет находиться в ячейке B1. Тем не менее, надстройка будет по-прежнему отображать ячейку A1 для справки.

Я думал об использовании события Office.EventType.DocumentSelectionChanged для обнаружения изменений в документе. Проблема в том, что обработчик не указывает, какая часть рабочего листа изменилась, и я не вижу себя проверяющим каждую ячейку, чтобы увидеть, изменилось ли что-то, так как это сильно повлияет на производительность моей надстройки.

Есть предложения?

1 Ответ

0 голосов
/ 12 января 2019

Лучший подход IMHO - это использовать определенные имена в Excel (именованные диапазоны или именованные элементы) вместо явных ссылок. Таким образом, вы заставляете Excel делать всю работу за вас, а не пытаетесь дублировать то, что Excel уже делает в вашем собственном коде, используя Events.

Это рекомендуемая и наиболее часто используемая техника на других языках и API

...