Шаг 115.
Автоматизация Microsoft Excel. Работа с объектом Excel.Application. Создание объекта Excel.Application, запуск и визуализация окна приложения

    На этом шаге мы рассмотрим начальные операции с объектом Excel.Application.

    Запуск приложения Excel производится непосредственно при вызове функции CreateOleObject, входящей в состав стандартной библиотеки ComObj.pas. Функция возвращает ссылку на объект, представляющий собой переменную типа variant. Рассмотрим следующий программный код.

uses
  ComObj;
.   .   .   .   .
var
  E:variant;
.   .   .   .   .
procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel.Application
begin
  E:=CreateOleObject('Excel.Application');
end;

    Результатом выполнения данной процедуры будет запуск приложения Excel на выполнение. Вы можете обнаружить это, просмотрев список задач, запущенных на выполнение в операционной системе. Но для того чтобы убедиться, что приложение запущено, можно и не обращаться к списку выполняющихся задач. Можно просто сделать объект Excel видимым. Для этого используем свойство Visible объекта Application. Если это свойство установить в значение True, то окно приложения Excel тут же отобразится на экране. Манипулируя со свойством Visible, мы можем скрывать окно приложения или отображать его на экране.


    Замечание. Для ускорения формирования готового документа лучше, чтобы приложение было запущено в фоновом режиме, т. е. его окно не должно отображаться. Напротив, если требуется отследить ход формирования рабочей книги по шагам, то необходимо включить режим отображения (при Visible=True).

    Рассмотрим следующую процедуру.

procedure TForm1.CheckBox1Click(Sender: TObject);
//Отображение окна приложения Excel
begin
  E.Visible:=CheckBox1.Checked;
end;

    На рисунке 1 представлено окно Excel, отображенное на экране монитора, как результат выполнения приведенной процедуры.


Рис.1. Результат работы приложения

    Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CheckBox1: TCheckBox;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  E:variant;

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel.Application
begin
  E:=CreateOleObject('Excel.Application');
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
//Отображение окна приложения Excel
begin
  E.Visible:=CheckBox1.Checked;
end;

end.
Текст этого приложения можно взять здесь (5,0 Кб).

    Как видно из рисунка , вновь созданный и запущенный экземпляр приложения Excel не содержит ни одной рабочей книги. Все рабочие книги, которые в данный момент могут быть активны или принадлежать объекту Application (переменная Е), являются принадлежностью коллекции WorkBooks, которая в свою очередь принадлежит корневому объекту. Свойство Count: Integer коллекции WorkBooks содержит количество открытых рабочий книг (в нашем случае Count=0). Если мы создаем новую рабочую или открываем ранее сохраненную книгу, то значение Count увеличивается, если закрываем, то уменьшается каждый раз на единицу.

    Далее мы рассмотрим некоторые свойства и методы этой коллекции.

    На следующем шаге мы рассмотрим создание рабочей книги.




Предыдущий шаг Содержание Следующий шаг