Привязка объекта списка Excel VSTO с пользовательскими формуламиC#

Место общения программистов C#
Anonymous
Привязка объекта списка Excel VSTO с пользовательскими формулами

Сообщение Anonymous »

У меня есть надстройка VSTO для Excel (C#), которая привязывает ListObject (

Код: Выделить всё

Microsoft.Office.Tools.Excel
) в DataTable (

Код: Выделить всё

System.Data
) с помощью метода ListObject.SetDataBinding( DataTable, "", string[]). Объекты времени выполнения прослушивают событие DataTable.ColumnChanged.
Объекты времени выполнения интересуются только значениями определенных столбцов (определяемых значением string[] в вызове SetDataBindings), и я хочу, чтобы пользователь мог использовать формулы для определения значений для интересующих столбцов.
Это представляет проблему. Привязка Listobject к DataTable удаляет все формулы. Я могу обойти эту проблему, прочитав формулы перед привязкой и восстановив их впоследствии, чтобы формула сохранялась, но изменения формулы не запускали событие DataTable.ColumnChanged (не записывайте значение, отображаемое в Excel, в DataTable ).
Есть ли лучший способ уловить изменения, вызванные вычислением формулы?
Одно из возможных решений, которое я не решаюсь изучить, - это использовать NamedRange . ListObject может содержать тысячи строк, и один или несколько именованных диапазонов для каждой строки являются громоздкими (каждый именованный диапазон появляется и сохраняется в диспетчере имен Excel, и его необходимо будет удалять при каждом удалении строки или по окончании времени выполнения).

Подробнее здесь: https://stackoverflow.com/questions/798 ... r-formulas

Вернуться в «C#»