Delphi вики
Advertisement

Подготовительные работы[]

Для работы с Excel в модуль Delphi подключаем следующие модули:

uses ComObj, ActiveX, Variants;

И объявляем переменную, которая будет являться ссылкой на Excel.

var MyExcel: OleVariant;

Запуск и остановка программы[]

Проверка на наличие установленного Excel[]

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

function CheckExcelInstall:boolean;
var
  ClassID: TCLSID;
  Rez : HRESULT;
begin
// Ищем CLSID OLE-объекта
  Rez := CLSIDFromProgID(PWideChar(WideString('Excel.Application')), ClassID);
  if Rez = S_OK then  // Объект найден
    Result := true
  else
    Result := false;
end;

Если функция CLSIDFromProgID находит CLSID OLE-объекта, то, соответственно — Excel установлен.

Проверка на наличие запущенного Excel[]

function CheckExcelRun: boolean;
begin
  try
    MyExcel:=GetActiveOleObject('Excel.Application');
    Result:=True;
  except
    Result:=false;
  end;
end;

Запуск приложения[]

Excel запускается командой:

MyExcel:=CreateOleObject('Excel.Application');

При запуске приложения можно запретить всплывающие сообщения и скрыть окно:

MyExcel.Application.EnableEvents:=False; //Скрываем сообщения
MyExcel.Visible:=False; //Скрываем окно приложения

Функция для запуска приложения:

function RunExcel(DisableAlerts:boolean=true; Visible: boolean=false): boolean;
begin
  try
{проверяем установлен ли Excel}
    if CheckExcelInstall then
      begin
        MyExcel:=CreateOleObject('Excel.Application');
//показывать/не показывать системные сообщения Excel (лучше не показывать)
        MyExcel.Application.EnableEvents:=DisableAlerts;
        MyExcel.Visible:=Visible;
        Result:=true;
      end
    else
      begin
        MessageBox(0,'Приложение MS Excel не установлено на этом компьютере','Ошибка',MB_OK+MB_ICONERROR);
        Result:=false;
      end;
  except
    Result:=false;
  end;
end;





Информация взята с сайта webdelphi.ru

Advertisement