Dbgriden Excel e aktarırken yapılan değişiklikler

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
u8300693
Üye
Mesajlar: 20
Kayıt: 09 Eki 2003 03:37
Konum: ANKARA

Dbgriden Excel e aktarırken yapılan değişiklikler

Mesaj gönderen u8300693 »

Merhabalar.
Aşşağıdaki kod da
1. Shetname ismi sabit olarak YILLIK olarak
2. Save edilirken otomatik olarak d:\ değilde bana savedialog penceresi getirip kayıt edecegim yeri bana sormasını istiyorum.

Bana yardımcı olabilirseniz sevinirim.

şimdiden teşekkürlerprocedure TForm3.BitBtn2Click(Sender: TObject);
var
xDS: TBDEDataSet;
xls, wb, ws, vv: variant;
i, j: integer;
fName: string;
fDosya: textfile;
begin
xls := CreateOleObject('Excel.Sheet');
wb := xls.Application.WorkBooks.Add;
ws := wb.Sheets.add;
dbgrid1.Datasource.Dataset.DisableControls;
dbgrid1.Datasource.Dataset.First;
for i := 1 to dbgrid1.Datasource.Dataset.RecordCount do
begin
for j := 1 to dbgrid1.Datasource.Dataset.Fields.Count do
begin
if i = 1 then // ilk satır alan adları için.
ws.Cells(i, j) := dbgrid1.Datasource.Dataset.Fields.Fields[j - 1].FieldName;
vv := dbgrid1.Datasource.Dataset.Fields.Fields[j - 1].Value;
ws.Cells(i + 1, j) := vv;

end;
dbgrid1.Datasource.Dataset.Next;
end;
dbgrid1.Datasource.dataset.EnableControls;
ws.SaveAs ('d:\AYLIK_XXX.xls') ;
ShowMessage('Aktarım tamamlandı');
kuranokurum
Üye
Mesajlar: 23
Kayıt: 26 Eki 2003 04:19

Mesaj gönderen kuranokurum »

İstersen run-time da create et istersen vcl paletten drop et bir tane savedialog nesnesi oluştur ve ardından

if savedialog1.execute then
ws.SaveAs (savedialog1.filename+'.XLS') ;

satırıyla kullanıcıya istediği isimle kayıt imkanı verirsin.....

Abdullah
Kullanıcı avatarı
u8300693
Üye
Mesajlar: 20
Kayıt: 09 Eki 2003 03:37
Konum: ANKARA

Mesaj gönderen u8300693 »

çok teşekkür ederim.
Peki sheet name i nasıl sabit verebilirim
Kullanıcı avatarı
u8300693
Üye
Mesajlar: 20
Kayıt: 09 Eki 2003 03:37
Konum: ANKARA

Mesaj gönderen u8300693 »

Arkadaşlar üstte belirtilen kod da shhet name i kendim nasıl belirleyebilirim
Çok ugraştım ama malesef bu konuda takılı kaldım
Sheet name sabit olarak PRODUCT olması gerekmektedir.

ilginizize şimdiden teşekkür ederim.
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Sevgili Arkadaşım basit bir örnek kod parcası vermek istiyorum.Umarım işinize yarar.

Kod: Tümünü seç

Function ExcelRenameSheet(
  Excel         : Variant;
  eskiad       : ShortString;
  yeniad       : ShortString): Boolean;
Begin
  Try
    Excel.Sheets(eskiad).Name := yeniad ;
    Result := True;
  Except
    Result := False;
  End;
End;
Eski ad sayfa 1 dir siz başka bir deger verebilirsin ve ya Excel.Sheets(eskiad).Name := yeniad ; kod cümlesi istediğin adı sabitleyebilirsin.
İyi çalışmalar. :)
Cevapla