BİR TABLE daki bilgileri EXCEL a aktarma....

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ADNAN
Üye
Mesajlar: 57
Kayıt: 19 Haz 2003 06:57
Konum: ISTANBUL

BİR TABLE daki bilgileri EXCEL a aktarma....

Mesaj gönderen ADNAN »

Bir delphi kullanıcısının yapmış olduğu EXCEL_TABLE adlı componenti kullanıyorum. Bu component te (EXCEL_TABLE) aktaracağınız table ı işaretliyorsunuz ve status u TRUE yaptığınızda EXCEL aplikasyonunu çalıştırıp table i EXCEL formu olarak açıyor. Çok kolay ve kullanışlı bir component.....

Fakat ..... createoleobject('EXCEL.APPLICATION') satırında aşağıdaki mesajı alıyorum....


COINITIALIZE HAS NOT BEEN CALLED

Bu konuda fikir sahibi olan arkadaşlara teşekkürlerimi bildiririm ..
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

kullandıgın makinada excel kurulumu?
ÜŞENME,ERTELEME,VAZGEÇME
ADNAN
Üye
Mesajlar: 57
Kayıt: 19 Haz 2003 06:57
Konum: ISTANBUL

Mesaj gönderen ADNAN »

Evet, Office 2000 yüklü... DELPHI 5 ile program geliştiriyorum.

Componenti gönderen arkadaşın verdiği bir ÖRNEK var. O Örnek çalışıyor. Tek bir proje tek bir form.... Aradaki tek farklılık bu....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

1. uses kısmındaki unitlere bir bak. Muhtemelen bazılarını yazmamışsındır, ondan olabilir.

2. viewtopic.php?t=54&highlight=coinitialize

bu mesajdaki çözüm işe yarayabilir.

Kolay gelsin.
celalatak
Üye
Mesajlar: 70
Kayıt: 27 Şub 2004 12:41

Mesaj gönderen celalatak »

Aşağıdaki kodu tablona uyarlarsan sanırım sorunu çözersin.

Kolaygelsin

uses ComObj ....

procedure TForm1.Button1Click(Sender: TObject);
var
excel, sayfa: Variant ;
d:integer;
r:variant;
begin
Screen.Cursor := crHourGlass;

excel:=createoleobject('excel.application');
excel.workbooks.add;
sayfa:=excel.workbooks[1].worksheets[1];
r:=excel.activeworkbook.worksheets[1].cells[1];
d:=0;
r.cells[1,1]:='Cust No';
r.cells[1,2]:='Company';
r.cells[1,3]:='City';

table1.Open;
table1.First;

while Not Table1.eof Do
begin
d:=d+1;
r.cells[1+d,1]:=Table1.FieldByName('CustNo').AsString;
r.cells[1+d,2]:=Table1.FieldByName('Company').AsString;
r.cells[1+d,3]:=Table1.FieldByName('City').AsString;

Table1.Next;
end;
table1.Close;
Screen.Cursor := crDefault;
excel.visible:=true;
excel:=unassigned;

end;



Table1.Next;
end;
table1.Close;
excel.Columns.AutoFit; // burası colonlari ayarlar
Screen.Cursor := crDefault;
ADNAN
Üye
Mesajlar: 57
Kayıt: 19 Haz 2003 06:57
Konum: ISTANBUL

Mesaj gönderen ADNAN »

Teşekkür ediyorum...

Initialize ile ilgili satırları koydum.

Kullandığım bu componenti ortak bir yere gönderebilirim. Aslında yapabilecek olan; bu componenti QUERY için geliştirse çok daha da güzel olur. Bu componenti yapan arkadaşın paylaşma ve geliştirme ile ilgili herhangi bir yaptırımı yok.

Celalatak rumuzlu arkadaş a da teşekkür ediyorum.

Herkese kolay gelsin..
Cevapla