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