Karakter boyutu :
|
|
Delphide Excell Aktarımı
Benim sık sık kullandığım bir işlem. Database de istediğiniz kayıtları dbgrid nesnesine getirdiniz. Ama bunların üzerinde işlem yapmak istiyorsunuz. Akla gelen ilk fikir olan excell`e atmak. Bunu için kısa bir procedure... 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; Kullanımı: DBGridToExcell(dbgrid1,`c:\esinti.xls`); Ben bu işlemi savedialog compenantı kullanarak yapmayı tercih ediyorum. Kullanıya dosya adresi ve ismi seçme şansı veriyorsunuz. |
|
|
|
12 Şubat 2008 Salı - For Developer - Yorum Yaz/Oku (0) - # |