Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Dbgrid Excele Aktarma Sorunu
#1
Arkadaşlar merhaba aşağıdaki paylaşmış olduğum kod ile delphi 7 de sorunsuz bir şekilde dbgridde ki verileri excele aktarabiliyordum ancak delphi nin 10.2 tokyo sürümünde bir yerde hata veriyor sebebini bulamadım yardımlarınızı bekliyorum.

procedure TForm4.BitBtn1Click(Sender: TObject);
var
v,sayfa:variant;{v excel prg, sayfa calisma sayfasi}
say,i:integer;
begin
dm.RAPORQ.DisableControls;
bitbtn1.Caption:='Lütfen Bekleyiniz...';
label1.Caption:='Lütfen Bekleyiniz...';
say:=dm.RAPORQ.recordcount;
v:=createoleobject('excel.application');
v.workbooks.add;
sayfa:=v.workbooks[1].worksheets[1];
dm.RAPORQ.first;
sayfa.cells[1,1]:='SÜTUN 1';
sayfa.cells[1,2]:='SÜTUN 2';

for i:=1 to say do
begin
sayfa.cells[i+1,1]:=dm.RAPORQ.FieldByName('Alan adi 1').text;
sayfa.cells[i+1,2]:=dm.RAPORQ.FieldByName('Alan adi 2').text;

dm.RAPORQ.next;
end;
showmessage('Kayıtlar Excele Başarılı Bir Şekilde Aktarıldı');
showmessage('Lütfen Excel Dosyanızı Kaydetmeyi Unutmayınız!!!');
v.visible:=true;
sayfa.Columns.AutoFit;
dm.RAPORQ.EnableControls;


Delphi 10.2 tokyonun vermiş olduğu hata 'undeclared identifier worksheets' 
Uses kısmına comobj kütüphanesini eklediğim halde bu hatayı alıyorum.
Cevapla
#2
Şu aşağıdaki kodu bir butona altına koyup bir deneyin isterseniz. Bende şu haliyle çalışıyor. ( Delphi 10.4.2 )

Çalışmazsa sisteminizde sorun ararsınız, çalışırsa kodunuzdaki farklara bakabilirsiniz.
Uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
const
  xlWBATWorksheet = -4167                  ;
Var
  LExcel,
  LWorkBook,
  LWorkSheet  : OleVariant;
begin
  LExcel :=    CreateOleObject('Excel.Application');
  Try
    LWorkBook        := LExcel.Workbooks.Add( xlWBatWorkSheet );
    LWorkSheet       := LWorkBook.WorkSheets[1];
    LWorkSheet.Name  := Format('(%s)',[DateToStr(Now)]);
  Except
    MessageDlg('İşlem Başarısız...', mtError, [mbOk], mrOk);
    Exit;
  End;
  LExcel.Visible := True;
end;

Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
Merhaba,
Eğer 1 den fazla çalışma sayfasına veri gönderiyorsanız muhtemelen Office 2016 gibi üst sürüm kullandığınız için böyle bir hata alabilirsiniz. Boş Excel sayfasını açtığınızda kontrol edin varsayılan olarak 3 sayfa mı gelmiş 1 sayfa mı? Eğer 1 sayfa geldiyse bunu Seçenekler>Genel Menüsünden sağdaki bölümde Bu kadar çok sayfa ekle bölümüne ekleme yapabilirsiniz.
Yada Excel dosyasını oluşturunca Max. sayfa sayısına bakın öncelikle ve sonrasında ihtiyacınız kadar eksik olanları tanımlayın.

İyi Çalışmalar.
Cevapla
#4
Öncelikle cevaplarınız için teşekkür ediyorum. Muharrem Arman hocam vermiş olduğunuz kod işime yaradı kendime uyarlayarak sorunu hallettim teşekkür ediyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DBGrid Detay Gösterilmesi. OZCANK 19 9.484 05-04-2024, Saat: 00:48
Son Yorum: Pimapen_Nuri
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 763 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68
  Cas Terazi Veri gönderimi Delphi sürüm sorunu KUNTAY 12 4.497 08-11-2023, Saat: 00:06
Son Yorum: berkan
  TCMB Kur Almada Explorer Sertifika Sorunu Adem Kurt 3 630 24-10-2023, Saat: 15:14
Son Yorum: RAD Coder
  program exe icon sorunu cvheneburi 9 2.884 19-10-2023, Saat: 15:04
Son Yorum: harunyl



Konuyu Okuyanlar: 1 Ziyaretçi