Excel Veri okuma ve vt ye yazdırma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Excel Veri okuma ve vt ye yazdırma

Mesaj gönderen Okann »

Merhaba arkadaşlar,

Exceldeki verileri veritabanına yazdırıyorum.

4 kolonum var bu 4 kolonun tamamını veritabanına yazdırıyorum.

fakat exceldeki satır sayısı değişken olduğu için kaç satır okuması gerektiğini bilmediğimden for i 0 to 3000 do gibi bir rakam yazıdyorum.

yani 3000 satır oku diyorum. 3000 satır okusada sadece dolu olan kaç satır varsa onları yazıyor veritabanına.

peki ya 3000 satırı geçerse exceldeki satırlar o zamanda aşağıdaki koda başvurdum.

function excelsonsatir(AColumn: Integer): Integer;
const
xlUp = 3;
begin
Result := excel.Range[Char(96 + AColumn) + IntToStr(65536)].end[xlUp].Rows.Row;
end;

bu kod son dolu olan satıra kadar buluyor ama aşağıdaki kodun altını kırmızı çiziyor.

kırmızı çizsede progrm çalışıyor. ben neden kırmızı çizdiğini ve nasıl düzeltebileceğimizi merak ediyorum.

Yardımcı olursanızı çok sevinirim.

delphi 2010 kullanmaktayım.

.end[xlUp].Rows.Row; // bu alanın altını çiziyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Excel Veri okuma ve vt ye yazdırma

Mesaj gönderen mrmarman »

İki opsiyonun var.

(1) WHILE ile döngü kuracak, içeriğin boş olduğu durumda döngüyü sonlandıracaksın.

Kod: Tümünü seç

    Sayac  := 1;
    Orijin := Format('B%d', [Sayac]);
    While xExcel.Worksheets[1].Range[Orijin].Value <> '' do
    begin
      Memo1.Lines.Add( xExcel.Worksheets[1].Range[Orijin].Value );
      Inc(Sayac);
      Orijin := Format('B%d', [Sayac]);
    end; // While
(2) Satır sayısını tespit etmek için başka bir yol olarak aşağıdaki formülü uygulayacaksın yine mevcut altyapını kullanacaksın.

Kod: Tümünü seç

Var
  xlCellTypeLastCell = $0000000B;

Kod: Tümünü seç

  SatirSayisi := xExcel.Worksheets[1].Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Row;
Resim
Resim ....Resim
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: Excel Veri okuma ve vt ye yazdırma

Mesaj gönderen Okann »

teşekkür ederim hocam sağolun sorunum çözüldü yardımınızla
Cevapla