Адрес этой странички : http://doc-prg.narod.ru/art_00901/art_00901.htm
© 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 Сергей Попов