Показать сообщение отдельно
  #16  
Старый 27.04.2009, 22:20
Аватар для Sphinx
Sphinx Sphinx вне форума
Прохожий
 
Регистрация: 27.04.2009
Адрес: Kemcity
Сообщения: 36
Репутация: 12
По умолчанию

Может так лучше будет, пока в Excel все не выгрузится,он не покажется, и будет тебе форма с прогресс баром.
Код:
procedure TForm5.SpeedButton3Click(Sender: TObject);
var
ExcelApp : variant;
row :integer;
col:integer;
begin
form10.ShowModal;
dbgrid1.DataSource.DataSet.First;
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'OtchetPokyp.xls');
ExcelApp.Visible := False;
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет1';
ProgressBar1.Max := DBGrid1.DataSource.DataSet.RecordCount-1;
ProgressBar1.Position := 0;
ProgressBar1.Step := 1;
for row :=0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
for col :=0 to DBGrid1.Columns.Count-1 do
begin
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,col+2].value:=dbgrid1.DataSource.DataSet.Fields[col].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,1]:=row+1;
end;
ProgressBar1.StepIt;
Application.ProcessMessages;
DBGrid1.DataSource.DataSet.Next;
ExcelApp.Range[excelapp.cells[7,1],excelapp.cells[7+DBGrid1.DataSource.DataSet.RecordCount-1,9]].select;
ExcelApp.Selection.Borders.LineStyle:= xlContinuous;
end;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col-6].value:='м.п.';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col].value:='Подпись';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col+1].value:='_________'
ExcelApp.Visible := True;
end;
Ответить с цитированием