Как создать метод, который будет вызываться сразу после загрузки документа (с помощью Excel-DNA)?
Есть ли поддержка такой функции в Excel-DNA?
Получение события, вызываемого после загрузки документа
Ответы (1)
Из надстройки Excel-DNA у вас есть полный доступ как к C API, так и к объектной модели COM. В этом случае объектная модель COM предоставляет события для отслеживания открытых книг.
В библиотеку надстроек можно добавить ссылку на сборку взаимодействия Microsoft.Office.Interop.Excel
либо напрямую, либо с помощью пакета ExcelDna.Interop
NuGet.
Кроме того, есть два требования для безопасного использования объектной модели COM из надстройки Excel-DNA:
- Выполняйте COM-вызовы только из основного потока Excel.
- Получите корневой объект
Application
для размещенного экземпляра Excel с помощью вызоваExcelDnaUtil.Application
.
Чтобы получать уведомления об открытии рабочей книги, вы затем добавляете обработчики событий NewWorkbook
и WorkbookOpen
для объекта Application
.
person
Govert
schedule
17.08.2016
Есть ли способ заставить это работать со всеми версиями Excel с 2007 года?
- person user626528; 18.08.2016
Эта часть объектной модели COM одинакова во всех этих версиях, поэтому ваш код .NET будет работать во всех версиях.
- person Govert; 18.08.2016
Но пакет NuGet предназначен для Excel 2010. Будет ли он работать, если я просто использую этот пакет и устанавливаю свою надстройку в другую версию Excel?
- person user626528; 18.08.2016
Да - будет работать нормально. Это то же самое, как если бы вы написали код на VBA в Excel 2010 — он будет работать и в Excel 2007 или Excel 2016, если вы используете только те части объектной модели, которые доступны в версии Excel, в которой он работает.
- person Govert; 18.08.2016