excel deki bilgiyi aktarma

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.
Kullanıcı avatarı
muhittin_turmus
Üye
Mesajlar: 27
Kayıt: 09 Ağu 2003 10:30
Konum: izmir

excel deki bilgiyi aktarma

Mesaj gönderen muhittin_turmus »

deneme amaçlı bir program yazdım dbaseIV kullanıyorum exceldeki bir bilgiyi nasıl aktarabilirim yardımcı olursanız sevinirim :D
gençliğine güvenip
erken derken...
belki
elveda bile diyemessin
giderken...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Bu işi yapmanın bir çok yolu vardır. Benim onayladığım en basit yolu ADO ile Excel dosyasına direkt bağlantı kurup, sanki senin kullandığın DbaseIV tablosuymuş gibi erişmek şeklinde olacaktır.

- Gerekenler bir AdoConnection ve Bir AdoQuery nesnesi.
- Daha önce ADO ile bir bağlatı oluşturmadıysan sana da iyi bir deneme şansı oluşur.

- ExcelDosya diye String bir değişken tanımlarsın. Excel dosyanın yolunu ve adını buna verirsin.

- AdoConnection'un ConnectionString değeri aşağıdaki gibi olsun.

Kod: Tümünü seç

'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ExcelDosya + ';Extended properties=Excel 8.0';
- Geriye bu AdoQuery için yapacağın SQL sorgu satırını eklemek kalıyor.

Kod: Tümünü seç

AdoQuery.SQL.Add( 'Select * from [Sayfa1$]');
- Burada Sayfa1$ tabir edilen; $ işareti ile biten kelime, senin Excel dökümanındaki WorkSheet (sayfanın) adıdır.

- Bayaramın kutlu olsun.
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba,

Bu konu dahaönce konuşulmuştu ben size linkini veriyorum incelersiniz.
viewtopic.php?t=1060&highlight=excel

Kolay Gelsin...

Bayramınız Kutlar İyi Bayramlar Dilerim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- @husonet'in verdiği linkte ADO tekniği yokmuş. Bu sayede eklenmiş oldu.

- Lütfen soru sormadan önce arama yapmayı ihmal etmeyin. Çözüm bulamadığınız durumda daha önce arama sonucu ulaştığınız forum başlığını referans verip, onunla bağlantılı yönlendirin ki gelcekte aynı problemle karşılaşanlar o başlık senin bu başlık benim dağılmasınlar, derli toplu çözüm bulabilsinler.
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

@mrmcop dostum ben genelde ado kullanıyorum
fakat daha önce excel dosyasına bağlandığımda sadece yanlış hatırlamıyorsam 10 veya 15 kayıtı gösteriyordu 100 ün üzerinde kayıt olduğu halde bunun sebebi nedir?
(Başlığı gördüm de merak ettim sende kullanmışsın bu yöntemi sen daha iyi bilirsin)

Saygılar
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Altalta kayıtlar arasında tamamen boş bir satır vardır... O satırı silince veya ilk sütununa bir giriş yaparsan geri kalan kayıtları kazanırsın....
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

yooo boş bir satır yok. ve mesela 5 alan yani kolon var excel de benim ado f5, f6, bilmem ne diye yeni alanlar gösteriyo :)

mrmcop icq dan sana şarkı söyledim yine selam demedim alacağın olsun senin :)
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Yahu ICQ'dan herhangi bir tepki almamıştım... Şimdi tekrar girdim belki offline gelmiştir diye, yine yok... :oops: History'ye baktım bomboş...

- Alanlar arasında değil satırlar arasında boşluk vardır demek istemiştim... Bazen satırlar arasında hidden edilmiş (line height değeri 0 olmuştur) olabiliyor... :idea:

- En kötü ihtimalle tümünü seçip, yeni bir worksheet'e özel yapıştır deyip sadece değerleri dersen boşluk kalmadan mevcut kayıtları aktarmış olursun...

- DOS işletim sistemi olsaydı ASCII karakter karışmıştır diycem ama öyle bişeyle Excel'de karşılaşmadım... Dilersen bu Excel dosyasını bana mail ile yolla bir de ben bakayım... Belki yeni bişi öğrenmiş oluruz...
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

Valla dostum excel dosyası nasıl biliyonmu a kolonuna a1 yaptım b ye b1 c ye c1 aşağı çektim a100 e kadar ve bunu okuyamadı salak delphi :)
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Dostum bir yerde hata yapıyorsun galiba... :!: :?: :idea:

- Aynı bahsettiğin gibi yaptım... Sorunsuz okudu tümünü... :idea:

- Boş bir form aç ve Forma aşağıdakileri koy. Şimdilik herhangi bir atama/yönlendirme yapma... Kodda bunu senin yerine yaptım...

bir tane AdoConnection
bir tane AdoQuery
bir tane DataSource
bir tane DBGrid

- Kod da aynen aşağıda...

- Form Create olayına da aşağıdaki kodu aynen copy/paste yap...

Kod: Tümünü seç

Var
  ExcelDosya : String;
begin
  ExcelDosya := 'D:\DOC\Kitap1.xls';
  DataSource1.DataSet := AdoQuery1;
  DBGrid1.DataSource  := DataSource1;

  AdoConnection1.LoginPrompt := False;
  AdoConnection1.ConnectionString :=
  'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ExcelDosya + ';Extended properties=Excel 8.0';
  AdoQuery1.Connection := AdoConnection1;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add( 'Select * from [Sayfa1$]');
  AdoQuery1.Active := True;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

:) Valla dostum yöntemimiz aynı farklı olan şu:
(ben sadece deneme amaçlı yapmıştım meraktan yani)

ben datasete yada query e design anında connectionstringi vermiştim ve dataseti de true yapmıştım. sen ise runtime da yapmışsın.. bundan dolayı sorun çıkar mı bence çıkmaması lazım...

saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Yukarda yazdığım şekilde çalışmış mıydı ? Denedin mi ?

- RunTime/DesignTime farketmez bence de...
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

mrmcop dostum evet senin yukarıda yazdıklarını ben runtime da denemedim designtime da denedim programı çalıştırdırdım ama ilk başta dediğim olmuştu işte :) ne bileyim bu iş yerindeki bilgisayarım kafayı yemiş de olabilir. 8 aydır ellemedim hiçbiryerini. Dur bir de evden deniyeyim sonucu sana söylerim :)

See you...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

mrmcop dostum aynen haklısın benim işyerindeki bilgisayara yeniden ayar çekmem lazım komple :)
aynı şeyi şimdi evde denedim runtime designtime hepsinde tıkır tıkır :)
moralim bozuldu biraz. o kadar uğraşmıştım olmamıştı muhittin_turmus a verdiğin cevabı da tesadüfen görünce mesaj atayım dedim :) ulan deli önce evde bir desene dimi :)
import yapabilmek için delphiye takla attırdım valla :) (İşyerinde)
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
alperen
Üye
Mesajlar: 13
Kayıt: 12 Mar 2004 03:20

Raize Drop Master'ı bir deneyebilirsiniz.

Mesaj gönderen alperen »

DropMaster
Cevapla