Адрес этой странички : http://doc-prg.narod.ru/art_00901/art_00901.htm 

(c) Sergey Popov, Usinsk, Komi, 2007

© 21.08.2007 Сергей Попов

Excel + Delphi-5.
OLE (COM).
Запуск программы Excel

Статью в виде файла (260 кб) можно скачать здесь: art_00901.zip 

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


 

Проверим, как это работает.

Создадим Delphi-проект.
Ниже представлена форма проекта.


Рис.1. Форма проекта Connect_to_Excel.dpr

Изменим текст, созданный Delphi следующим образом :

unit cte1;
interface
uses
 ComObj, //изменение
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ExtCtrls, StdCtrls, Buttons, Spin;

 

type
TForm1 = class(TForm)
  ...
  ...
public
  { Public declarations }
 
Excel : Variant;
end;
 

Создадим обработчик события OnCreate для формы :

Создадим обработчик события OnCloseQuery для формы :

Текст функции YesLinkToVariant приведен ниже :

function YesLinkToVariant(HandleAny : Variant) : boolean;
//Проверяет, корректна ли ссылка (HandleAny)
begin
 Result:=FALSE;
 if not VarIsEmpty(HandleAny) then Result:=TRUE;
end;

 

 Теперь создадим обработчик события : нажатие на кнопку "Запустить" :

 

Создадим обработчик события : нажатие на кнопку "Закрыть" :

Создадим обработчик события OnClick компонента CB_YesVisible: TCheckBox ("Видимость") :

 

Создадим обработчик события OnClick компонента CB_YesAlert: TCheckBox ("Запрос на подтверждение") :

 

Теперь скомпилируем наш проект, запустим программу на выполнение и проведем ряд экспериментов.

 

Результат нажатия на кнопку "Запустить"  :


Рис.2. Запуск Excel с использованием механизма OLE Automation 

 

Видимость окна Excel (при выключении флажка "Видимость") :



 

 

 


Рис.3. Окно Excel скрыто, но соединение осталось активным
 


Закрыть Excel и соединение с Excel (по нажатию на кнопку "Закрыть") :

Рис.4. Excel закрыт

 

Отредактировать (интерактивно) таблицу Excel :


Рис.5. После запуска - отредактируем одну из ячеек таблицы Excel

 

Попытка закрыть Excel после редактирования (по нажатию на кнопку "Закрыть")
при включенном флажке "Запрос на подтверждение" :


Рис.6. Попытка закрыть Excel после редактирования.
Включен режим : "запрос на подтверждение"

 

Вот, собственно, и все, что хотели рассмотреть в контексте данной темы.

 

Исходные тексты этого проекта можно взять здесь (9 кб) :  connect_to_excel.zip

 

© 21.08.2007 Сергей Попов

 


Hosted by uCoz