Показать сообщение отдельно
  #14  
Старый 07.11.2010, 08:40
Аватар для Voron
Voron Voron вне форума
Новичок
 
Регистрация: 16.09.2010
Сообщения: 61
Репутация: 10
По умолчанию RE:-)

Попробуй этот код. Подключи модуль Exel97 и пользуйся на здоровье!

PHP код:
procedure TForm13.BitBtn1Click(SenderTObject);
Var 
ExcelApplication:Variant;
i1,i2,i3,i4,i,rInteger;
t,t2,t1string;
begin
r
:=0;

if 
form1.RzSelectFolderDialog1.Execute then t1:=form1.RzSelectFolderDialog1.SelectedPathName+'\'+form13.Edit1.Text+'.xls';
form13.Label2.Caption:=t1;
if fileexists(t1) then
begin
  if messagedlg('
Данный файл уже существуетПерезаписать?', mtwarning,[mbYes,mbNo,MbCancel],0)=idYes
  then
  begin
    try
     ExcelApplication:= GetActiveOleObject('
Excel.Application');
    except
     ExcelApplication:= CreateOleObject('
Excel.Application');
    end;
    dm.Query2.First;

    while not dm.Query2.Eof do
    begin
    r:=r+1;
    dm.Query2.Next;
    end;

    ExcelApplication.WorkBooks.open(t1);
    for i:=1 to 10 do
       ExcelApplication.Cells[1,i].value:=dm.Query2.Fields[i-1].FieldName;
       dm.Query2.First;
       while not dm.Query2.Eof do
       begin
       for i:=2 to r+1 do begin
       for i1:=0 to 9 do
       ExcelApplication.Cells[i,i1+1].value:=dm.Query2.Fields[i1].AsString;
       dm.Query2.Next;
       end;
       ExcelApplication.Cells[r+2,1].value:='
Агрегации';
       ExcelApplication.Cells[r+3,1].value:='
Сумма';
       ExcelApplication.Cells[r+4,1].value:='
Среднее значение';
       ExcelApplication.Cells[r+5,1].value:='
Максимум';
       ExcelApplication.Cells[r+6,1].value:='
Минимум';

       ExcelApplication.Cells[r+3,2].value:='
=СУММ(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+4,2].value:='
=СРЗНАЧ(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+5,2].value:='
=МАКС(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+6,2].value:='
=МИН(J2:'+'J'+inttostr(r+1)+')';


       end;
end else begin
 try
     ExcelApplication:= GetActiveOleObject('
Excel.Application');
    except
     ExcelApplication:= CreateOleObject('
Excel.Application');
    end;
    dm.Query2.First;

    while not dm.Query2.Eof do
    begin
    r:=r+1;
    dm.Query2.Next;
    end;

    ExcelApplication.WorkBooks.open(t1);
    for i:=1 to 10 do
       ExcelApplication.Cells[1,i].value:=dm.Query2.Fields[i-1].FieldName;
       dm.Query2.First;
       while not dm.Query2.Eof do
       begin
       for i:=2 to r+1 do begin
       for i1:=0 to 9 do
       ExcelApplication.Cells[i,i1+1].value:=dm.Query2.Fields[i1].AsString;
       dm.Query2.Next;
       end;
       ExcelApplication.Cells[r+2,1].value:='
Агрегации';
       ExcelApplication.Cells[r+3,1].value:='
Сумма';
       ExcelApplication.Cells[r+4,1].value:='
Среднее значение';
       ExcelApplication.Cells[r+5,1].value:='
Максимум';
       ExcelApplication.Cells[r+6,1].value:='
Минимум';

       ExcelApplication.Cells[r+3,2].value:='
=СУММ(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+4,2].value:='
=СРЗНАЧ(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+5,2].value:='
=МАКС(J2:'+'J'+inttostr(r+1)+')';
       ExcelApplication.Cells[r+6,2].value:='
=МИН(J2:'+'J'+inttostr(r+1)+')';

       end;
       end;
       end;
       close;

end; 
Ответить с цитированием