Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Excel Veri Okuma Yöntemi Tercihiniz Nedir?
#11
(11-11-2020, Saat: 17:50)pro_imaj Adlı Kullanıcıdan Alıntı: Merhaba,

Tüm cevaplar için teşekkür ederim, neredeyse tüm yöntemleri deneyerek aşağıdaki şekilde çalışmanın bana göre en zahmetsiz ve ücretsiz'i olduğunu gördüm. 

Aşağıdaki şekilde excel kurulu olmayan bir bilgisayarda hiçbir ek işleme gerek kalmadan veriler kolayca okunabiliyor.
  ADOConnection1.ConnectionString :=
    'Provider=Microsoft.JET.OLEDB.4.0;Data Source="'+AStream.FileName+'";Extended Properties="Excel 8.0;"';
 ADOConnection1.Connected := True;

  ADOQuery1.SQL.Text := 'SELECT * FROM [Sayfa1$]';
 ADOQuery1.Open;
 

*Ek önlem olarak; Veri girişi yapılacak excel dosyasında diğer tüm alanları kilitlemekte veri tutarlılığı açısından çok faydalı oluyor.

Teşekkürler.


Ben  driver olarak Provider=MSDASQL.1; olarak kullanıyoum, siz Provider=Microsoft.JET.OLEDB.4.0; 
bu ikisi arasında +- bir fark varmı performans yada farklı açılardan, bizde ona geçelim.
Herhangi bir insan bilgisayarın anlayabileceği kod yazabilir.  İyi programcılar ise insanların da anlayabileceği kodlar yazarlar. 
Martin Fowler / Refactoring 
Cevapla
#12
(11-11-2020, Saat: 21:20)bydelphi Adlı Kullanıcıdan Alıntı:
(11-11-2020, Saat: 17:50)pro_imaj Adlı Kullanıcıdan Alıntı: Merhaba,

Tüm cevaplar için teşekkür ederim, neredeyse tüm yöntemleri deneyerek aşağıdaki şekilde çalışmanın bana göre en zahmetsiz ve ücretsiz'i olduğunu gördüm. 

Aşağıdaki şekilde excel kurulu olmayan bir bilgisayarda hiçbir ek işleme gerek kalmadan veriler kolayca okunabiliyor.
  ADOConnection1.ConnectionString :=
    'Provider=Microsoft.JET.OLEDB.4.0;Data Source="'+AStream.FileName+'";Extended Properties="Excel 8.0;"';
 ADOConnection1.Connected := True;

  ADOQuery1.SQL.Text := 'SELECT * FROM [Sayfa1$]';
 ADOQuery1.Open;
 

*Ek önlem olarak; Veri girişi yapılacak excel dosyasında diğer tüm alanları kilitlemekte veri tutarlılığı açısından çok faydalı oluyor.

Teşekkürler.


Ben  driver olarak Provider=MSDASQL.1; olarak kullanıyoum, siz Provider=Microsoft.JET.OLEDB.4.0; 
bu ikisi arasında +- bir fark varmı performans yada farklı açılardan, bizde ona geçelim.

Merhaba,

Siz sağlayıcı olarak ODBC kullanmış oluyorsunuz ben ise Jet kullanmış oluyorum. İkimizin yönteminde de Ofis yazılımı kurulu olmasına gerek yok.  Aşağıdaki gibi ACE yöntemi kullanmış olsaydık ofis yazılımının kurulu olması gerekecekti.

Provider=Microsoft.ACE.OLEDB.12.0;";

iyi çalışmalar.
Cevapla
#13
(11-11-2020, Saat: 21:32)pro_imaj Adlı Kullanıcıdan Alıntı: Aşağıdaki gibi ACE yöntemi kullanmış olsaydık ofis yazılımının kurulu olması gerekecekti.

Provider=Microsoft.ACE.OLEDB.12.0;";

iyi çalışmalar.

Office yazılımı değil, MS Data Access Components paketi kurulması gerekiyor. MS Jet.4.0, sistemde hali hazırda vardır. Open XML dosya biçimlerini desteklemiyor hatırladığım kadarıyla.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Aynı anda 10.000 farklı cihazdan veri alışverişi yapma. pro_imaj 23 1.342 27-12-2020, Saat: 11:22
Son Yorum: pro_imaj
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 14 2.086 18-12-2020, Saat: 17:34
Son Yorum: engerex
  Parmak izi okuyucudan veri çekmek ermanispir@gmail.com 15 5.170 30-11-2020, Saat: 09:26
Son Yorum: wiseman
  İki Tablo Arasında Veri Aktarma Ve Silme bünyamin68 6 502 28-11-2020, Saat: 11:03
Son Yorum: bünyamin68
  TIdTCPServer'dan seçili client'a veri gönderme [çözüldü] Yasemin 12 923 24-11-2020, Saat: 09:27
Son Yorum: pro_imaj



Konuyu Okuyanlar: 1 Ziyaretçi