Создание надстройки excel в visual studio

Обновлено: 01.07.2024

Стоит задача написания надстройки для MS Excel. Она должна производить форматирование документа, его редактирование и уметь отображать собственные диалоговые окна. Все это в real-time, по нажатию кнопки на панели инструментов Excel.

Решение этой задачи усложняется следующими ограничениями:
1. На компьютерах пользователей надстройки нет прав администратора;
2. Нет возможности поставить дополнительное ПО, вроде MS VSTO, либо долго и нудно просить админов что-либо сделать;
3. Нет доступа к диску C, он попросту невиден для пользователя (есть диск D и сетевые диски);
+ ко всему, надстройка, должна быть, по возможности, универсальной, нужна поддержка версий 2003 - 2010, а в идеале и Open Office.

Как мне видится идеальное решение (задача максимум):
Исполняемый код надстройки написать на Java используя IDE Eclipse (Java+Eclipse - наш корпоративный стандарт). Создать jar файл и подключить его, некоим образом, к Excel и Open Office, как надстройку. Т.е. единый базовый код обработки csv + софто-зависимый код, использующий соответствующий API для доступа и редактирования/форматирования ячеек в таблице (форматирование здесь исключительно для удобства чтения документа). Далее пользователь открывает Excel (Open Office), автоматически подгружается надстройка, которая создает на панели задач кнопку. Пользователь загружает csv, жмет кнопку, видит диалоговое окно и что-то с ним делает.

Задача минимум:
Создать универсальную надстройку для Excel (одну для всех версий - 2003-2010).
На данный момент уже реализована XLA надстройка, с макросами, автоматическим добавлением кнопок в меню (v2003) и на ленту (v2007) и диалоговыми окнами, но далее совершенствовать ее используя VBA, у меня нету мочи, мне не достаточно языковых возможностей и встроенных классов.

Я ни за что не поверю, что нет стандартных приемов, при которых пишется простейший код, экспортируются нужные функции в DLL, все это компилируется и подключается к Excel c помощью Меню > Надстройки > Подключить .
Помогите, пожалуйста, найти правильную дорожку, ведь наверняка не мало народу подобными вещами озадачиваются.

Интересуетесь разработкой решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office имеют небольшой объем по сравнению с надстройками и решениями VSTO, и их можно создавать с помощью практически любой технологии веб-программирования, такой как HTML5, JavaScript, CSS3 и XML.

последние сведения о разработке Office см. в центре разработчиков Microsoft Office.

Содержание раздела

Ссылки на сведения о настройке компьютера разработчика для создания решений Office, первых шагах по созданию решений Office, а также новых возможностях разработки решений Office в Visual Studio.

Ссылки на сведения о процессе обновления для проектов, созданных с помощью предыдущих версий Visual Studio.

Ссылки на сведения о том, как работают решения Office, в том числе о настройках уровня документа и надстройках VSTO.

Сведения о создании проектов Office и их настройке в Visual Studio.

Сведения об использовании управляемого кода в решениях Office, в том числе о настройке пользовательского интерфейса Office, о работе с данными и об устранении неполадок.

Сведения об автоматизации работы Excel, о создании решений Excel, а также о характерных для Excel проблемах, связанных с глобализацией.

Сведения о способах создания шаблонов форм и надстроек VSTO для InfoPath.

Сведения об автоматизации работы Outlook и о создании надстроек VSTO и областей форм для Outlook.

Сведения об автоматизации работы PowerPoint и о создании надстроек VSTO PowerPoint.

содержит сведения об автоматизации Microsoft Office проекта и создании надстроек VSTO проектов.

Сведения об автоматизации работы Visio и о создании надстроек VSTO Visio.

Сведения об автоматизации работы Word и о создании решений Word.

Сведения о различиях между созданием проектов Office и других типов проектов в Visual Studio.

Сведения о различиях между отладкой проектов Office и других типов проектов в Visual Studio.

Сведения о работе функций обеспечения безопасности в решениях Office.

Сведения о том, как делать решения Office доступными для пользователей, а также об основных аспектах, которые необходимо учитывать при выборе метода развертывания.

Ссылки на примеры приложений и разделы с пошаговыми инструкциями по выполнению типовых задач.

Ссылки на сведения об интерфейсах COM, которые можно использовать для выполнения таких действий, как загрузка и выгрузка управляемых надстроек VSTO в приложениях Office.

Связанные разделы

разработка Office с помощью портала Visual Studio разработчиков Предоставляет дополнительные ресурсы, такие как технические статьи, видеоролики и блоги.

центр разработчиков Visual Studio предоставляет дополнительные Visual Studio ресурсы, такие как технические статьи, видеоролики и блоги.

раздел "разработка Microsoft Office" библиотеки MSDN область библиотеки MSDN, в которой можно найти статьи и справочную документацию по разработке решений для нескольких версий Office (не только для Office разработки с помощью Visual Studio).

Разработка приложений в Visual Studio содержит ссылки на разделы, в которых объясняется, как можно использовать Visual Studio для проектирования, разработки, отладки и развертывания веб-приложений, веб-служб XML и традиционных клиентских приложений.

В этом вводном пошаговом руководстве показано, как создавать надстройки уровня приложения для Microsoft Office Excel. Функции, создаваемые в подобном решении, доступны для приложения независимо от того, какие книги открыты.

Применимо к: сведения в этом разделе относятся к VSTO добавления - в проекты для Excel. дополнительные сведения см. в разделе функции, доступные по Office приложении и типу проекта.

Интересуетесь разработкой решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office имеют небольшой объем по сравнению с надстройками и решениями VSTO, и их можно создавать с помощью практически любой технологии веб-программирования, такой как HTML5, JavaScript, CSS3 и XML.

В этом пошаговом руководстве описаны следующие задачи:

Создание проекта надстройки VSTO Excel для Excel.

Написание кода с использованием объектной модели Excel, которая при сохранении книги добавляет в нее текст.

Построение и запуск проекта для тестирования.

Удаление завершенного проекта для прекращения автоматического запуска надстройки VSTO на компьютере разработчика.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Предварительные требования

Для выполнения этого пошагового руководства требуются следующие компоненты:

Выпуск Visual Studio, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в статье Настройка компьютера для разработки решений Office.

Excel 2013 или Excel 2010.

Создание проекта

Создание проекта надстройки VSTO Excel в Visual Studio

Запустите среду Visual Studio.

В меню Файл укажите Создать, затем нажмите Проект.

В развернутом узле Office/SharePoint выберите узел Надстройки Office .

В списке шаблонов проектов выберите Надстройку Excel 2010 или Надстройку Excel 2013.

В поле Имя введите FirstExcelAddIn.

Нажмите OK.

Visual Studio создает проект проект firstexceladdin и открывает файл кода ThisAddIn в редакторе.

Написание кода для добавления текста в сохраненную книгу

Затем добавьте код в файл ThisAddIn. Новый код использует объектную модель Excel для вставки стандартного текста в первую строку активного листа. Активным является лист, открытый в момент сохранения книги пользователем. По умолчанию файл кода ThisAddIn содержит следующий созданный код:

Частичное определение класса ThisAddIn . Этот класс предоставляет точку входа для кода и обеспечивает доступ к объектной модели Excel. дополнительные сведения см. в статье надстройки программы VSTO. Оставшаяся часть ThisAddIn класса определяется в скрытом файле кода, который не следует изменять.

Обработчики событий ThisAddIn_Startup и ThisAddIn_Shutdown . Эти обработчики событий вызываются, когда Excel загружает и выгружает надстройку VSTO. Их можно использовать для инициализации надстройки VSTO в процессе ее загрузки, а также для освобождения используемых надбавкой ресурсов при ее выгрузке. дополнительные сведения см. в разделе события в Office проектах.

Добавление строки текста в сохраненную книгу

В файл кода ThisAddIn добавьте в класс ThisAddIn указанный ниже код. Новый код определяет обработчик событий для события WorkbookBeforeSave , которое возникает при сохранении книги.

Когда пользователь сохраняет книгу, обработчик событий добавляет новый текст в начало активного листа.

Для изменения книги при ее сохранении в приведенных выше примерах кода используются следующие объекты:

Поле Application класса ThisAddIn . Поле Application возвращает объект Application , который представляет текущий экземпляр Excel.

Параметр Wb обработчика событий для события WorkbookBeforeSave . Параметр Wb является объектом Workbook , который представляет сохраняемую книгу. дополнительные сведения см. в статье общие сведения об объектной модели Excel.

Тестирование проекта

Тестирование проекта

Нажмите клавишу F5 для построения и запуска проекта.

При построении проекта код компилируется в сборку, которая включается в выходную папку сборки для проекта. Visual Studio также создает ряд записей реестра, которые позволяют Excel обнаружить и загрузить надстройку VSTO, и настраивает параметры безопасности на компьютере разработчика, разрешая запуск надстройки VSTO. дополнительные сведения см. в разделе Build Office solutions.

Сохраните книгу в Excel.

Убедитесь, что в книгу добавляется указанный ниже текст.

Этот текст добавляется с помощью кода.

Очистить проект

Завершив разработку проекта, удалите с компьютера сборку надстройки VSTO, записи реестра и параметры безопасности. В противном случае надстройка VSTO будет запускаться при каждом открытии программы Excel на компьютере разработчика.

Очистка завершенного проекта на компьютере разработчика

  1. В Visual Studio в меню Построение выберите пункт Очистить решение.

Дальнейшие действия

Теперь, когда вы создали базовую надстройку VSTO для Excel, изучите более подробную информацию о разработке надстроек VSTO в следующих разделах.

общие задачи программирования, которые можно выполнять в VSTO надстроек: программы VSTO надстройки.

задачи программирования, характерные для Excel VSTO надстройки: Excel решения.

настройка пользовательского интерфейса Excel, например, путем добавления пользовательской вкладки на ленту или создания собственной настраиваемой области задач: Office настройки пользовательского интерфейса.

Использование Visual Studio для Excel Разработка расширений VSTO: инструкции и основные операции


Excel должен быть эффективным инструментом, который мы обычно используем в нашей повседневной работе. Если вы хотите расширить больше бизнес-функций Excel, вы можете разработать расширения VSTO для Excel в среде разработки VS. Интерфейс Excel, после добавления вкладок и элементов управления в функциональную область Office, выполняет некоторые необходимые нам бизнес-функции:

Новая надстройка Excel VSTO


Создайте новое приложение расширения Excel в VS. Если вы не найдете эту опцию, перейдите к установщику VS в красном поле и выберите вариант разработки Office (версия VS, которую я использую - 2015 и 2017)

ThisAddIn.cs является основной точкой входа в программу расширения VSTO, которая предоставляет нам множество событий обратного вызова для использования



Щелкните правой кнопкой мыши в решении нового проекта, чтобы создать функциональную область для проекта Excel, эта функциональная область является пользовательским интерфейсом внешней программы Excel VSTO.

Основные пространства имен и абстрактные типы

Узнайте о двух часто используемых библиотеках

При разработке VSTO часто используются две библиотеки:

Понимать абстрактные типы в разработке Excel

1、Application

В программе VSTO интерфейс приложения представляет все приложение Excel

2、WorkSheet

Объект WorkSheet является членом набора объектов WorkSheets и является абстракцией страницы листа в Excel.

3、Range

Объект Range - это абстракция каждой ячейки в Excel или выделенной области, содержащей один или несколько блоков ячеек (эта область может быть непрерывной или прерывистой) )

Вышеупомянутые три элемента - три наиболее часто используемых абстрактных интерфейса для Excel в VSTO

Основная операция

В проекте Excel, в файле ThisAddIn и других файлах проекта,Способ чтения и записи элементов Excel отличается:

  • В файле ThisAddIn.cs получить доступ к элементам в Excel и получить прямой доступ к нему с помощью приложения
  • Однако в файлах не-ThisAddIn .cs, таких как событие кнопки новой ленты, если вы хотите получить доступ к элементу Excel, вы должны добавить Globals.ThisAddIn впереди, чтобы получить к нему обычный доступ.
  • При нормальных обстоятельствах бизнес-операции вообще не будут выполняться в основной программе, поэтому все основные примеры операций в будущем будут приведены в соответствии с методом доступа неосновной программы:

Расширенные элементы управления Excel

Microsoft предоставляет несколько полезных расширенных элементов управления для Excel, которые могут помочь Excel выполнить более расширенные функции, такие как:

  • Добавить таблицу на лист и связать источник данных
  • Добавить диаграмму на лист и связать источник данных
  • Подождите, как показано ниже:


1. Используйте ObjectList, чтобы расширить элемент управления на таблицу Excel и связать источник данных

Все операции, описанные выше, являются операциями над каждым отдельным элементом в Excel, но если есть одинисточник данныхНеобходимо связать с рабочим листом в Excel, это роль ListObject. Элемент управления ListObject поддерживает простое и сложное связывание данных, самое простое, например: например, связывание источника данных DataTable в памяти

Вариант использования 1: привязка DataTable к ObjectList

Добавление ListObject в WorkSheet of Excel с использованием программирования VSTO аналогично добавлению таблицы в Excel. Операция в Excel заключается в следующем:

Читайте также: