Реклама
 


  •  

    Работа с Excel из Delphi. Часть 1

     

    Подготовка

    Откроем нашу среду разработки Delphi (в моем случае это Delphi 2010). Создадим новый проект. Должен сказать, что работа с Excel происходит через объекты COM. Поэтому нам надо подключить в раздел USES нашего проекта модуль COMObj. Так же нам понадобится модуль ActiveX. Это будет выглядеть примерно вот так:

    Данная функция ищет CLSID. по соответствующему ProgID в реестре, в нашем случае мы ищем «Excel. Application». Если открыть реестр и перейти к ветке:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes

    то там можно будет обнаружить много разделов. Среди них есть как раз нужный нам «Excel. Application» (при условии, что данное ПО установлено в системе). К сведению: у этого раздела имеется еще два подраздела:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel. Application\CurVer

    Параметры функции:

    - pszProgID. строка, содержащая ProgID.

    - clsid. получает CLSID.

    Возвращаемые значения:

    - S_OK - CLSID создан успешно.

    - E_OUTOFMEMORY - нет памяти.

    - E_INVALIDARG - указывает что один или более аргументов неверны. Стоит проверить правильность строки pszProgID.

    При загрузке приложения ищем наличие Excel в системе. Если не находим, то выводим сообщение пользователю и закрываем программу с помощью метода Halt. Если находим, то просто показываем форму.

    Проверить, запущен ли Microsoft Excel

    Далее давайте кинем на форму одну кнопку TButton. На событии OnClick будем писать код работы с Excel. Первое что мы сделаем, это добавим локальную переменную типа Variant для доступа к Excel с именем, например, FExcel :

    Теперь определимся, что мы хотим. Я всегда создавал новый экземпляр экселя, даже если он был уже запущен в системе. Но я это не вы. Поэтому я покажу вам, как можно использовать уже запущенный Excel. Создадим функцию и объявим ее так же в секции private :

     



  • На главную