powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+Excel
7 сообщений из 7, страница 1 из 1
Delphi+Excel
    #39866659
alexK19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане. Подскажите как, если возможно, открывать документ на переднем плане.

Вариант - искать окно по его имени через API, как-то не очень...
...
Рейтинг: 0 / 0
Delphi+Excel
    #39866688
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.09.2019 9:31, alexK19 пишет:
> Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане.

как запускаешь?
показывай
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi+Excel
    #39866705
alexK19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий25.09.2019 9:31, alexK19 пишет:
> Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане.

как запускаешь?
показывай



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
const
  ExcelApp = 'Excel.Application';

var
  Excel: OleVariant;

........



function TReportForm.CheckExcelInstall: boolean;
var
  ClassID: TCLSID;
begin
  Result := CLSIDFromProgID(PWideChar(WideString(ExcelApp)), ClassID) = S_OK;
end;

function TReportForm.RunExcel(DisableAlerts: boolean=true; Visible: boolean=false): boolean;
begin
  try
    if CheckExcelInstall then
      begin
        Excel := CreateOleObject(ExcelApp);
        Excel.Application.EnableEvents := DisableAlerts;
        //Excel.Visible := Visible;
        Result := true;
      end
    else
      begin
        MessageBox(0,'Excel íå óñòàíîâëåí','Îøèáêà',MB_OK+MB_ICONERROR);
        Result:=false;
      end;
  except
    Result := false;
  end;
end;

procedure TMainForm.Button1Click(Sender: TObject);
var
  WorkBook, Sheet: OleVariant;
begin
  RunExcel(True, True);
  WorkBook := Excel.Workbooks.Add;
  .......
  //Заполняю отчет
  ....... 
  Excel.Visible := Visible;
end;
...
Рейтинг: 0 / 0
Delphi+Excel
    #39866720
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TMainForm.Button1Click(Sender: TObject);
var
  WorkBook, Sheet: OleVariant;
begin
  RunExcel(True, True);
  WorkBook := Excel.Workbooks.Add;
  .......
  //Заполняю отчет
  ....... 
  Excel.Visible := Visible;
  SetForegroundWindow(Excel.Hwnd);
end;
...
Рейтинг: 0 / 0
Delphi+Excel
    #39866726
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вообще для максимального ускорения выгрузок

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class function TExcelExporter.CreateExcelOleObject :OleVariant;
begin
  Result := CreateOleObject('Excel.Application');
  Result.Visible := False;
  Result.EnableEvents := False;
  Result.ScreenUpdating := False;
  Result.WorkBooks.Add;
  Result.Calculation := xlCalculationManual;
  Result.DisplayAlerts := False;
end;

class procedure TExcelExporter.ShowExcelOleObject(xls :OleVariant);
begin
  xls.ScreenUpdating := True;
  xls.EnableEvents := True;
  xls.Calculation := xlCalculationAutomatic;
  xls.DisplayAlerts := True;
  //xls.ReferenceStyle := xlA1;
  xls.Visible:=True;
  SetForegroundWindow(xls.Hwnd);
end;
...
Рейтинг: 0 / 0
Delphi+Excel
    #39866734
alexK19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>SetForegroundWindow(Excel.Hwnd);

Спасибо.
...
Рейтинг: 0 / 0
Delphi+Excel
    #39867757
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19,

не скупитесь, купите компонент Spreadsheet раньше в комплекте DevExpress был сейчас есть и отдельно.

или качните, и вас ни кто не осудит ActiveX, работает от 98 по Windows 10, завоут его F1Book, если не заниматься супер построением графиков в Excel то думаю будет достаточно, просто и быстро.

потому что все эти сервера автоматизации от Microsoft ну не то это
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]