Arşiv Anasayfa VCL (Delphi Visiual Component Library)
Sayfalar: 1
Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: Fatih Tarih: 08 October 2005 02:50:22
Öncelikle http://sourceforge.net/projects/tpofficepartner/  adresinden Office Partner Componentini indirip Kurun.Kullanımı Ücretsiz Bir Component. Kurduuktan Sonra Component Palette OfficePartner sekmesiyle yerini alacaktır. Bu bileşenleri kullanartak kolaylıkla Word ve Excel'e veri aktarabiliriz.

Tabloyu Word'e Gönderme
Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner sekmesinde bir Opword birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.

Tablomu Worde aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1 vb. olabilir.

Opword ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.
:
var
Form1: TForm1;
MergeDoc: TOpWordDocument; //Değişkenimiz.
Daha Sonra Uygulamamız Kapatıldığında Wordle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki Kodu Yazın
:
if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa
MergeDoc.Free; //Word'ü Kapat
if OpWord1.Connected=true then //Word'e Bağlıysa
OpWord1.Connected:=false; //Bağlantıyı Kes
 
Aşağıdaki Kodda Verileri Word'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına Yazdım.
:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Worde Aktaracağımız Tabloyu OpDataSetModel Bileşeninin
//Dataset özelliğine Aktarıyoruz
OpDataSetModel1.Dataset:=IBQuery1;
if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa
MergeDoc.Free; //Word'ü Kapat
if OpWord1.Connected=true then //Word'e Bağlıysa
OpWord1.Connected:=false; //Bağlantıyı Kes
ibquery1.Active:=true; //Tabloyu Aç
OpWord1.Connected := True; //Word'e Bağlan
OpWord1.DisplayScrollBars:=true; //Word'de Kaydırma Çubukları Görünsün
OpWord1.Visible := False; //Word'ü Gizle
MergeDoc := OpWord1.NewDocument; //Yeni Word Belgesi Aç
OpWord1.Visible := True; //Word'ü Göster
Opword1.WindowState:=wdwsMaximized; //Word'ü Tam Ekran Olarak Göster
//Tabloyu Word'e Aktar
with OpWord1.Documents[0].Tables.Add do
begin
OfficeModel :=OpDatasetModel1;
PopulateDocTable;
end;
ibquery1.Active:=false; //Tabloyu Aç
end;

Tabloyu  Excel'e Gönderme
Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner sekmesinde bir OpExcel birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.
Tablomu Excel'e aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1 vb. olabilir.
OpExcel ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.
:
var
Form1: TForm1;
NewBook:TopExcelWorkBook;
Aşağıdaki Kodu OpExcel Bileşeninin BeforeWorkBookClose Olayınada yazın.
 
:
if Assigned(NewBook:) then //Excel Daha Önce Açılmışsa
NewBook:.Free; ///Excel'i Kapat
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
 
Daha Sonra Uygulamamız Kapatıldığında Excelle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki Kodu Yazın.
:
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
 
Aşağıdaki Kodda Verileri Excel 'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına Yazdım.
 
:
procedure TForm1.Button1Click(Sender: TObject);
var
Rng : TOpExcelRange;
begin
OpExcel1.Connected := True; //Excel'e Bağlan
OpExcel1.Visible := True; //Excel'i Göster
OpExcel1.WindowState:=xlwsMaximized; //Excel'i Tam Ekran Olarak Göster
IBQuery1.Active:=true; //Tabloyu Aç
NewBook:=OpExcel1.Workbooks.Add; //Yeni Excel Belgesi Aç ü
//Ayarları Yap
Rng := OpExcel1.Workbooks[0].Worksheets[0].Ranges.Add;
Rng.Name := 'www.delphidunyasi.com'; //Keyfinize Göre Bir isim Verin
Rng.Address := 'A1';
Rng.OfficeModel :=OpDataSetModel1; //Kaynak OpDataSetModel Bileşeni
//Excele Aktaracağımız Tabloyu OpDataSetModel Bileşeninin
//Dataset özelliğine Aktarıyoruz
OpDataSetModel1.Dataset :=IBQuery1;
OpExcel1.RangeByName['www.delphidunyasi.com'].Populate; //Tabloyu Aktar
OpExcel1.Workbooks[0].Worksheets[0].Activate; //Exceli Aktif Pencere yap
Rng.AsRange.Columns.AutoFit; //Kolon Genişlikleri Otomatik
IBQuery1.Active:=false; //Tabloyu Kapat
end;


Not : Alan Adlarını Field Editorden DisplayFormat  Özelliği ile istediğiniz gibi değiştirebilirsiniz. örneğin alan adı DOGUM_TARIHI ise  alanın DisPlayFormat özelliğine Doğum Tarihi Yazarsanız alan adı DisPlayFormat özelliğinde olduğu gibi görünür
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: Mikdad Tarih: 09 November 2005 15:24:21
Hocam allah razı olsun bunlar çok işime yarıyacak componenti de indirdim. ama benim şöyle bir sorunum var bir excell formatında bir dosyam var için de 2000 kayıt var ve ben bunları acceste yaptımı mdb uzantılı db ya atmak istiyorum nasıl yapabilirim
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: Mikdad Tarih: 10 November 2005 17:28:55
Hocam Teşşekkür ederim Kopyala Yapıştırla Hallettim
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: Fatih Tarih: 10 November 2005 17:29:58
Hocam Te? ederim Kopyala Yap?a Hallettim
rica erderim Smile)
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: erasersoft Tarih: 28 November 2005 00:48:45
çok sağolasın hocam ama bizde birşeyler eklemek isteriz.
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: Fatih Tarih: 28 November 2005 09:17:56
çok sağolasın hocam ama bizde birşeyler eklemek isteriz.

rica ederim.eklersen memnun olurum İyi
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: memet Tarih: 28 December 2006 16:37:40
merhaba,
office partneri internetten idirdim ama kuramadım.yardımcı olurmusunuz.indirdiğim dosyada sourca, example, delphi,vbuilder,test,bin gibi klasörler var.Ama bin,test gibi bazı klasörler boş...
saygılar
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: FetihlerFatihi Tarih: 28 December 2006 17:21:49
merhaba,
office partneri internetten idirdim ama kuramadım.yardımcı olurmusunuz.indirdiğim dosyada sourca, example, delphi,vbuilder,test,bin gibi klasörler var.Ama bin,test gibi bazı klasörler boş...
saygılar
http://www.delphiturkiye.com/index.php?page=tpos.htm#Kurulum
http://www.delphidunyasi.net/index.php?topic=792.0
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: memet Tarih: 29 December 2006 08:37:43
teşekkür ederim.Kurban Bayramınızı tebrik eder, sağlıklı ve mutlu bir geleceğin sizinle olmasını dilerim.
Ynt: Tabloyu Word Ve Excel'e Gönderme (OfficePartner) Gönderen: FetihlerFatihi Tarih: 31 December 2006 16:10:03
teşekkür ederim.Kurban Bayramınızı tebrik eder, sağlıklı ve mutlu bir geleceğin sizinle olmasını dilerim.
teşekkür ederim. ben de cümlemiz için diliyorum