Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Exel_vs;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Spin,ComObj,ActiveX,ExtCtrls;
- const ExcelApp = 'Excel.Application';
- {Функции для работы с Exel}
- function CheckExcelInstall:boolean;
- function CheckExcelRun: boolean;
- function RunExcel(DisableAlerts:boolean=true; Visible: boolean=false): boolean;
- function AddWorkBook(AutoRun:boolean=true):boolean;
- function StopExcel:boolean;
- var
- {Переменные для работы с листами Exel}
- MyExcel: OleVariant;
- excel_adress:String;
- implementation
- uses vagon_ch,basa,profil_basa;
- {Функции для работы с EXEL}
- //Проверка установлен ли Excel;
- function CheckExcelInstall:boolean;
- var
- ClassID: TCLSID;
- Rez : HRESULT;
- begin
- // Ищем CLSID OLE-объекта
- Rez := CLSIDFromProgID(PWideChar(WideString(ExcelApp)), ClassID);
- if Rez = S_OK then // Объект найден
- Result := true
- else
- Result := false;
- end;
- //Определяем запущен ли Excel
- function CheckExcelRun: boolean;
- begin
- try
- MyExcel:=GetActiveOleObject(ExcelApp);
- Result:=True;
- except
- Result:=false;
- end;
- end;
- // Запуск Excel с проверкой установки и открытия
- function RunExcel(DisableAlerts:boolean=true; Visible: boolean=false): boolean;
- begin
- try
- {проверяем установлен ли Excel}
- if CheckExcelInstall then
- begin
- MyExcel:=CreateOleObject(ExcelApp);
- //показывать/не показывать системные сообщения 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;
- //проверяю запущен ли Excel и, если он не запущен,
- //то либо запускаю и добавляю книгу, либо просто выхожу – всё зависит от ситуации.
- function AddWorkBook(AutoRun:boolean=true):boolean;
- begin
- if CheckExcelRun then
- begin
- MyExcel.WorkBooks.Add;
- Result:=true;
- end
- else
- if AutoRun then
- begin
- RunExcel;
- MyExcel.WorkBooks.Add;
- Result:=true;
- end
- else
- Result:=false;
- end;
- //Сохраняем рабочую книгу
- function SaveWorkBook(FileName:TFileName; WBIndex:integer):boolean;
- begin
- try
- MyExcel.WorkBooks.Item[WBIndex].SaveAs(FileName);
- if MyExcel.WorkBooks.Item[WBIndex].Saved then
- Result:=true
- else
- Result:=false;
- except
- Result:=false;
- end;
- end;
- //Закрытие Excel
- function StopExcel:boolean;
- begin
- try
- if MyExcel.Visible then MyExcel.Visible:=false;
- MyExcel.Quit;
- MyExcel:=Unassigned;
- Result:=True;
- except
- Result:=false;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment