мониторинг диапазона ячеек внутри Excel 2007 с помощью C # / VSTO

StackOverflow https://stackoverflow.com/questions/1830726

Вопрос

У меня есть строка в Excel, которую я хотел бы преобразовать в ObserveableCollection на C # для целей привязки / события, чтобы все классы доступа знали, что они получают последние данные из исходного листа Excel.Как бы это было сделано?

Разъяснение:Я использую проект надстройки Excel, а не проект рабочей книги, поэтому не уверен, являются ли элементы управления XMLMappedRange опцией.

Это было полезно?

Решение

Используя VSTO, у вас есть несколько вариантов:

  1. Из Excel.Рабочий лист класс, вы можете получить доступ к Рабочий лист.Изменить событие.
  2. Из Диапазон имен класс, вы можете получить доступ к NamedRange.Изменить событие (которое использует Microsoft.Офис.Взаимодействие.Excel.Делегат DocEvents_ChangeEventHandler, который вы упомянули в другом комментарии).
  3. Класс NamedRange также поддерживает простую одностороннюю привязку к данным с помощью Привязки к данным свойство, пример которого приведен в обсуждении Как мне привязать массив к диапазону имен.
  4. Другой возможностью является XmlMappedRange ( XmlMappedRange ) элемент управления, который также поддерживает привязку к данным.

Хороший учебник по использованию NamedRange и XmlMappedRange можно найти здесь: Модель программирования VSTO.Достойное пошаговое руководство с использованием NamedRange можно найти в Обзорная экскурсия по Visual Studio Tools for Office (VSTO) 2005.

Я надеюсь, что это поможет...

Майк

Другие советы

Вы можете добавить OnChanged в свой диапазон измененных событий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top