Программирование с использованием API C в Excel

Относится к: Excel 2013 | Office 2013 | Visual Studio

�� ������ ������������ ����� ������� ���������� ������������ ����������� XLL ��� Microsoft Excel 2013 � C API, ����� ��������� ���������������������� ������� ��������� ������ � Excel�2013. ���������� C API ��� Excel�2013 �������� ���������� ��������� �������������, ��� ������� ������������������ ��������� ��� ���������� ������� ������ ������ ����.

Программные интерфейсы Excel

� ��������� Excel �������� ��������� ��������� ���������� ����������, ������� � ��� ���������������. ����������� ���������� Excel ����������� � ���������� ������ � ��������� �������:

  • ���� �������� XLM: ������ ��������� ������������� ���� ��� ���������� Excel � ������ C API. ���� ���� XLM ��-�������� �������������� � Excel�2010, ��� �� ������ ������ ���� Visual Basic ��� ���������� (VBA).

  • C API � XLL: ���������� DLL, ��������������� � Excel. ��� ������������� ��������� ��� ����������������� � ������ �������� ���������� ���������������������� ������� ��������� ������, �� ������������ �� �������, ��� ����������� ����������.

  • VBA: ������� ���� Visual Basic, ��������� � ��������� ����� Excel. VBA ��������� ������������� �������, ����������� � ��������� ������������ ������������� ������� � �������. VBA � ��� �������� ���������������� � ����� ������� ������� ���������� Excel.

  • ������ COM: �������� �������������� ��� ���������� Windows, � ������� �������� Excel ������������� ���� ������� � �������. VBA ���������� ������ COM ��� �������������� � Excel. Excel ������������ ���������� ����� COM, ������� �������� ��������� ������� ���� COM � ���������� �� C++, ����������� Excel.

  • ��������� Microsoft .NET Framework: ������������� ����������� ����� ���������������� ��� ������� ���������� ���������� ��� �������������� ����. �������� ���� ���������������� .NET Framework � ��� C#, ���� � ������ ������ ����� ����� ��������������� � ���� MSIL. Excel�2013 ����� �������� ������ � �������� ���� � ������� .NET Framework.

Причины для использования C API

�������� ������� ��������� XLL � ������������� C API � �������� ���������������������� ������� ��� ������ � �������. ���� ������� XLL ����� �������� ������������� ������������� ���������, ����� ��� �������� � ������, ����������� ��� ��������� XLL, ������ ��� ���������� ������������ ��� ����������� �������������. ��� �� ����� ����������� ��������� ���������������������� �������, � ����� ��������� � Excel�2013 ������������� ���������� ��� ������ ��������� �������� ������ �� ����� ������ ������ ��������� ���������� Excel.

Версия C API, представленная в Excel 2007, относится, в основном, к высокопроизводительным расчетам, а не пользовательскому интерфейсу.

Написание высокопроизводительных определяемых пользователем функций для работы с листами

API C Excel идеально подходит для создания высокопроизводительных функций листа путем создания надстроек XLL. API C предоставляет наиболее прямой доступ к данным листа. XLL предоставляют Excel прямой доступ к ресурсам DLL. Производительность БИБЛИОТЕК XLL в Excel 2013 еще больше повышается за счет добавления новых типов данных и, что самое главное, поддержки запуска определяемых пользователем функций на кластеризованных серверах.

������ � XLL ������� � ������������� ������������: C API �� ������������� ������������ ������� ��������������� ����������, ��������� ��� ������������� ����� VBA, ������ COM ��� .NET Framework. ���������� ������� ��������������, ��� �������� ��������������� ������������. Многие функции Excel, доступные благодаря модели COM, а значит, доступные через VBA и .NET Framework, недоступны в C API.

Доступ к многопоточным серверам с помощью функций XLL

������������� �������� (MTR), ������� ����������� � Excel 2007, ��������� ��������� ���������������� ������� ����� XLL. �� ����� ������������ ��� ������� � ������������� ��������. � ��������� �������� ����� �������� �����������, ��� ��� ����� ����������� ��������� ����������� ������������������. Для пользователей Excel, которым иногда требуется доступ к мощным вычислительным ресурсам, сочетание библиотеки XLL, использующей MTR, и мощного сервера обеспечивает высокую производительность решения.

Настройка пользовательского интерфейса Excel

��� ������ ������ Excel ��������� C API �� ��� ������ ������� ��� ��������� ����������������� ����������. VBA ������������� ����������� ������ � �������� � �������� Excel. ���������������� ���������, ������� �������������� � Excel 2007, ����������� ���������� �� ���������� ������ ��� ������� �����, ��� � ������� �����������. Этот интерфейс лучше всего можно настроить с помощью ресурсов управляемого кода.

Создание приложений, доступных в Интернете

������ Excel � Microsoft Office 2007 � ��� ������ ������ �������������� ������������� ������� � ������ � �������� Excel � ������� ����������� ������� ��������. Вместе с языками разработки и ресурсами .NET Framework эти технологии очень важны в случае развертывания Excel для пользователей в будущем.

Управление Excel из внешних приложений

Excel ������������� ������ � ��������, ������� � �������� � ������� COM-����������. ����� ������� �� ������ ������������ ������ COM ��� �������� ���������� ����������, ������� ����� ��������� ������ Excel � ��������� ���, � ����� ��������� ������������ ������� Excel. ������ � COM-���������� Excel ����� �������� � �������������� ��������� ������ ����������, ������� C++ � VBA. C# и .NET Framework аналогичным образом предоставляют интерфейс взаимодействия с Excel, обеспечивающий удаленный доступ к Excel.

Асинхронный вызов Excel

Excel позволяет XLLs вызывать API C только в том случае, если Excel передал управление XLL. Функция листа, вызываемая Excel, может вызывать в Excel с помощью API C. Команда XLL, вызываемая Excel, может вызывать API C. Функции и команды DLL и XLL, вызываемые VBA при вызове самой VBA Excel, могут вызывать API C. Например, нельзя задать обратный вызов Windows в XLL и вызвать из него API C, а api C нельзя вызвать из фонового потока, созданного XLL. Асинхронный вызов Excel с помощью COM из БИБЛИОТЕКи DLL или XLL не рекомендуется.

��� ����� ������������ ���� �����������, ��� ��� ��������� ���������� ������ ����������� �� ������� ����������. ��������, ��� ����� ������������� �������� ����� ������ � Excel �� ��������� � �������� ��������� ���������� ��� ������ ��������� ������. ��� ��� ����� ������������ ������� ����� ��� ���������� � ����������� ������ � Excel ����� ��� ����������.

��� ����� � ������� Excel ����� ������� ����������� ���������, �� ��� ������������ � �����������, ��� ��� Excel ����� ����� ��������� ���������� ��������. �� ������ ��������� ������������� ��������������� �������, ��������� C API ��� VBA, ���� ��� �� ��������� �������.

� ��������� ������ ��������� ����� ����������� ������� ������� ��� �������� ��������� ������, ������� ���������� Excel ��� ���������� ���������� � ���������. ��� ����� ������� � ������� ����������, ������� ��������������� � Excel � ������� ������ COM. � ������� �� ���������� C API, � ������� �������� ������ ����� ������������, ������ ���� ���������� Excel ���� �������� ����������, ������ COM �� ��� ����������. Приложения COM могут вызывать методы Excel всякий раз, когда Excel находится в состоянии готовности, несмотря на то, что эти вызовы могут игнорироваться, если отображаются диалоговые окна, открываются меню или выполняется макрос.

Интерфейс C API и его связь с XLM

���� �������� Excel (XLM) ��� ������ ��������� ������������� ������ ���������������� � Excel. ��� ��������� ��������� ������������� ������� � ������� �� ����������� ������ ��������, ������� ������ �� ������� �����. ����� �������� XLM ��-�������� �������������� � Excel�2013. �� ����� �������� ����� ������������ ��� ������� ������� ������, ����� ��� SUMLOG, � ����� ��������� ��������, ������� ���������� ������ �� �����:

  • функции, предоставляющие сведения о рабочей области, такие как GET.CELL и GET.WORKBOOK;

  • эквивалентные командам функции, позволяющие автоматизировать обычные пользовательские операции, такие как DEFINE.NAME и PASTE;

  • функции, связанные с надстройками, такие как REGISTER;

  • эквивалентное командам перехватывание событий (например, с помощью ON.ENRTY и ON.TIME);

  • операции макросов, связанные с функциями, такие как ARGUMENT и VOLATILE;

  • операции управления потоком выполнения, такие как GOTO и RETURN.

������������ ������ C API ������������ � Excel ������ 3. ������ � Excel ������ 4 ���� XLM ��� ����������� � ����������� C API. � ��� ��� ���������� DLL ����� ������� ��� ������� �����, �������������� ������� ����� ��������, ������� � ���� ���������� ���������� �������. DLL �� ����� �������� ������� ���������� ������� XLM �� C API. ��� ������� � ������� ������� � ����� ������� XLMacr8.hlp (������� �������� � Macrofun.hlp). ��� ��������� ����� ����� ������� ��������� � ����� �������� ���������� � ��������� ����� "XLMacr8.hlp".

Примечание.

Windows Vista и Windows 7 не поддерживают HLP-файлы напрямую, но вы можете скачать программу справки Windows (WinHlp32.exe) для Windows Vista или программу справки Windows (WinHlp32.exe) для Windows 7 от корпорации Майкрософт, позволяющие открыть эти файлы.

���������� DLL �������� ����������� ���� ������� � ������ ���������� C API, ��������� ������� ��������� ������ Excel4, Excel4v, Excel12Excel12v (��������� ��� ���� ������������ � Excel 2007). ������������� ���������, ��������������� ������ ������� � �������, ���������� � ����� ��������� � ���������� ��� ���� �� ���������� �������� ��������� ������. ��������, ������� GET.CELL ������������ xlfGetCell, REGISTERxlfRegister, � DEFINE.NAMExlcDefineName.

������ ������� �����, � ����� ������ � ������� ����� ��������, C API ������������� ������������ ������� � ������, ������� ����� �������� ������ � ������� ���� ������� ��������� ������ �� DLL. ��������, xlGetName ��������� DLL ����� ����������� ������ ���� � ������ ���, ��� ���������� ��� ����������� ������� � ������ � Excel.

����� ������������� ������ Visual Basic ��� ���������� (VBA) � Excel ������ 5 � ��������� Visual Basic (VBE) � ������ 8 (Excel 97) ����� ������� �������� ��������� Excel ���� ���� VBA, � �� XLM. ��������� ����� ������������, �������������� � ����������� ������� Excel, �������� ����� VBA, �� �� ����� XLM ��� C API. ��������, ��������� ������, ���������� ������� � ����������� ����������� ����������� ���� ������� �������� � VBA, �� �� � XLM ��� C API.

Дополнительные сведения см. в статье Новые возможности API C для Excel.

См. также

Новые возможности API C для Excel

Функции обратного вызова API C: Excel4, Excel12

Начало работы с пакетом SDK XLL для Excel