мониторинг диапазона ячеек внутри Excel 2007 с помощью C # / VSTO
-
11-09-2019 - |
Вопрос
У меня есть строка в Excel, которую я хотел бы преобразовать в ObserveableCollection на C # для целей привязки / события, чтобы все классы доступа знали, что они получают последние данные из исходного листа Excel.Как бы это было сделано?
Разъяснение:Я использую проект надстройки Excel, а не проект рабочей книги, поэтому не уверен, являются ли элементы управления XMLMappedRange опцией.
Решение
Используя VSTO, у вас есть несколько вариантов:
- Из Excel.Рабочий лист класс, вы можете получить доступ к Рабочий лист.Изменить событие.
- Из Диапазон имен класс, вы можете получить доступ к NamedRange.Изменить событие (которое использует Microsoft.Офис.Взаимодействие.Excel.Делегат DocEvents_ChangeEventHandler, который вы упомянули в другом комментарии).
- Класс NamedRange также поддерживает простую одностороннюю привязку к данным с помощью Привязки к данным свойство, пример которого приведен в обсуждении Как мне привязать массив к диапазону имен.
- Другой возможностью является XmlMappedRange ( XmlMappedRange ) элемент управления, который также поддерживает привязку к данным.
Хороший учебник по использованию NamedRange и XmlMappedRange можно найти здесь: Модель программирования VSTO.Достойное пошаговое руководство с использованием NamedRange можно найти в Обзорная экскурсия по Visual Studio Tools for Office (VSTO) 2005.
Я надеюсь, что это поможет...
Майк
Другие советы
Вы можете добавить OnChanged в свой диапазон измененных событий.