Mega Code Archive
Dbgrid to excell [ data base gridlerinizi kolayca excell formatında kaydedin ]
// ****** DBGrid den EXCELL'e Kolayca kayıt. ******
// Aşağıdaki procedure iki adet parametre almaktadır.
// İlk Parametre Excel formatında kaydedilecek olan DBGrid in adıdır.
// İkinci Parametre Kaydedeceginiz Excell dosyasının adıdır.
// Örnegin DBGridinizin adı "DBGrid1" ve Kaydedeceginiz dosya da
// "C:\Deneme.xls" ise kullanım aşağıdaki gibi olacaktır.
// DBGridToExcell(DBGrid1, 'C:\Deneme.xls');
// Kolay Gelsin
// Türker ÖZDEMİR (turkerozdemir@yahoo.com)
//
// Not : Uses Kısmında ComObj eklemeyi unutmayın !!!!!!
procedure DBGridToExcell(DBG:TDBGrid; FileName:String);
var
EXCEL, WORKBOOK, SHEET:VARIANT;
DBGDataset: TDataSet;
k1,k2,k3:Integer;
begin
DBGDataset:=DBG.DataSource.DataSet;
k3:=DBGDataset.RecNo;
DBGDataset.DisableControls;
EXCEL := CREATEOLEOBJECT('EXCEL.APPLICATION');
EXCEL.VISIBLE :=False;
WORKBOOK :=EXCEL.WORKBOOKS.ADD;
SHEET:=WORKBOOK.WORKSHEETS[1];
try
For k1:=0 to DBG.Columns.Count-1 do
begin
SHEET.CELLS[1,k1+1]:=DBG.Columns[k1].Field.DisplayName;
SHEET.Columns[k1+1].ColumnWidth:=(0.139*DBG.Columns[k1].Width);
end;
DBGDataset.First; k2:=1;
While not(DBGDataset.Eof) do
begin
k2:=k2+1;
For k1:=0 to DBG.Columns.Count-1 do
begin
SHEET.CELLS[k2,k1+1]:=DBG.Columns[k1].Field.AsString;
end;
DBGDataset.Next;
end;
WORKBOOK.SaveAs(FileName);
ShowMessage('Excell Formatında Kayıt Tamamlandı');
finally
EXCEL.DisplayAlerts := False;
EXCEL.Quit;
EXCEL:=Unassigned;
DBGDataset.RecNo:=k3;
DBGDataset.EnableControls;
end;
end;