Microsoft Excel reporting and 
 data analyzing with practically no coding. 
 .Net, ActiveX, and VCL versions. 
 www.AfalinaSoft.com

Главная    Продукты    Downloads    Поддержка    Регистрация    Delphi & Excel

[ English ]

MS Office COM Add-ins. Excel reports with minimal coding. Save your time. Get impressive results. VCL & OCX. Microsoft Excel reporting 
 and data analyzing

Delphi & Excel


Продукты



Delphi & Microsoft Excel - Excel.Application

Запуск Microsoft Excel


Используя раннее связывание

Перед тем, как вы сможете использовать этот метод, вам необходимо импортировать библиотеку типов Excel.

var
IExcel: Excel8_TLB.Application_;
IU: IUnknown;
...
NewInstance := true; // false в случае, если хотите использовать уже запущенный
NewInstance := NewInstance or
(not SUCCEEDED( GetActiveObject(Excel8_TLB.CLASS_Application_, nil, IU) ) );
if NewInstance then
IExcel :=
CreateComObject(Excel8_TLB.CLASS_Application_) as Excel8TLB._Application
else
IExcel := IU;

Внимание - хорошая практика!
При объявлении интерфейсных переменных и предопределенных констант из импортированной библиотеки типов указывайте имя модуля, в котором они находятся.

Используя компоненты Delphi 5

Delphi 5 содержит более удобный механизм импорта библиотек типов с поддержкой событий и прекрасной генерацией ко-классов:

var
Excel: Excel97.TExcelApplication;
...
NewInstance := true;
Excel := TExcelApplication.Create(Self);
if NewInstance then
Excel.ConnectKind := ckNewInstance
else
Excel.ConnectKind := ckRunningOrNew;
Excel.Connect;

Для использования уже запущенного экземпляра Excel, если он существует, установите свойство ConnectKind TExcelApplication в ckRunningOrNew, или в ckRunningInstance, если вы не хотите создавать новый экземпляр, если Excel не запущен.

Внимание - хорошая практика!
Тестируйте свои приложения только с NewInstance := true. Используйте GetActiveObject или ckRunningInstance (для Delphi5) только в случае полной уверенности в коде, который будет выполняться после, иначе при экспериментировании вы можете потерять уже открытые, но еще не сохраненные книги.

Как только Microsoft Excel загружен, вы можете подключать остальные компоненты, например TExcelWorkbook, используя их методы ConnectTo:

var
Workbook: TExcelWorkbook;
...
Workbook.ConnectTo(Excel.ActiveWorkbook);

Примечание:
Рабочая книга или рабочий лист должны быть открыты перед тем, как вы сможете к ним подключиться! В разделе "Работа с Workbook" приведен код, как это сделать.

Для запуска Excel используйте только компонент TExcelApplication, не советуем пытаться осуществить это с помощью других компонентов. По крайней мере в некоторых инсталляциях, попытка вызова метода Connect (не метода ConnectTo!) Workbook или Worksheet приведет к возникновению исключения.

Используя позднее связывание

Автоматизация с использованием библиотеки типов (раннее связывание) намного проще и быстрее, поэтому избегайте позднего связывания (без использования библиотеки типов) везде, где только возможно. Однако, если обойтись без позднего связывания действительно невозможно, вот код для создания процесса Excel:

var
Excel: OLEVariant;
...
try
Excel := GetActiveOleObject('Excel.Application');
except
Excel := CreateOleObject('Excel.Application');
end;

Copyright © 1999-2003
Afalina Co., Ltd.
Все права защищены.

WebMaster