Mehmet Fatih YILDIZ (mfyz.com)

Menü



PHP ile Word ve Excel dosyaları oluşturmak

Kategori : PHP ve Pear Dökümanları
Eklenme Tarihi :
31 Ekim Pazartesi ´05
word, excel




Dikkat : Dökümanın yazılma tarihi üzerinden en az 60 gün (2 ay) geçmiş. İçerisindeki bilgiler güncelliğini yitirmiş olabilir, uygulamada ufak sorunlar oluşabilir. Yorumları ve güncellemeleri göz önünde bulundurarak dökümanı takip ediniz.


Nasıl?


PHP'deki COM nesnesi sayesinde Word, Excel gibi programlarla bağlantı kurulup onları kolayca yönetebiliriz. Tabiki kullanılacak olan bu programlar çalışılan sunucuda yüklü olması gerekmektedir. İşte buna ait kısa bir kodla rahatça anlayabileceğiniz 1-2 örnek. Basitçe bir metini bir word dosyasına (.doc) kaydetmeyi aşağıdaki örnekte görelim :

  1. # Word programını çalıştırıyoruz
  2.   $Word = new COM("Word.Application") or die("Word Başlatılamıyor!");
  3.  
  4. # işlemler
  5.   $Word->visible = 0;
  6.  
  7.   // yazı ekliyoruz
  8.   $Word->Documents->Add();
  9.  
  10.   // kursörün olduğu noktadan yazı yazdırmaya başlıyoruz.
  11.   $Word->Selection->TypeText("Bu metin php tarafından dinamik olarak yazdırılmıştır.");
  12.  
  13. # kaydettiriyoruz
  14.   $Word->SaveAs("C:Deneme.doc");
  15.  
  16.   // kapatıyoruz
  17.   $Word->Quit();

"Bu metin php tarafından dinamik olarak yazdırılmıştır." yazısı içerikli bir dosya C:\Deneme.doc konumuna kaydedilecektir.

Şimdi de Excel ile bir veriyi kaydetmeyi göreceğimiz bir bir örneğe bakalım :

  1. # Excel e bağlanmak için
  2.   $yeni_excel = new COM("Excel.Application");
  3.  
  4. # Yeni bir çalışma kitabı yaratmak için
  5.   $yeni_excel->Workbooks->Add();
  6.  
  7. # Çalışma kitabının class larını kullanarak yeni bir sheet oluşturmak için
  8.   $kitap=$yeni_excel->Workbooks(1);
  9.   $sheets=$kitap->Worksheets(1);
  10.  
  11. # Sheets içerisindeki hücreleri kullanmak için
  12.   $hucre = $sheets->Cells(1,1); // A1 hücresini seçili duruma getirdik..
  13.   $hucre->activate;
  14.  
  15. # Seçili hücreye yazılacak olan yazıyı ve rengini belirleyelim:
  16.   $font=$hucre->Font;
  17.   $font->Color=458751;
  18.  
  19.   $hucre->value= "Merhaba Dünya";  
  20.  
  21. # Çalışma kitabını kaydedelim
  22.   $kitap->saveas("C:Deneme.xls");
  23.  
  24. # Çalışma kitabını kapatıyoruz
  25.   $kitap->Close();
  26.   $yeni_excel->Workbooks->Close();
  27.  
  28. # Çıkıyoruz:
  29.   $yeni_excel->Quit();

Örnekler zaten yeterince açıklamalı ve basit. Kendinize kolayca uyarlayabilirsiniz. Excel örneği için forumdaki bir konudan faydalandım, soruyu soran ve kendi yanıtını bulan Sezgin Bilketay'a teşekkürler :-)


Hazırlayan : Mehmet Fatih YILDIZ


Yorumlar (9 yorum/ping var)



Üye Resmi Üye : GoLGe
17 Mayıs Cumartesi ´08 19:53 tarihinde yazmış
teşekkürler bu bilgi için bu kaynağın içine hazır COM nesnesini göstermişken COM PORT bağlantıyıda gösterebilirdin veya kaynak olarak php.org.trden bağlantıda verebilirdin
 


Üye Resmi Üye : mfyz
18 Mayıs Pazar ´08 12:08 tarihinde yazmış
ama yapmamışım
 


Üye Resmi Ziyaretçi : dış cephe
30 Haziran Pazartesi ´08 15:35 tarihinde yazmış
teşekürler arkadaşlar..
 


Üye Resmi Ziyaretçi : ilser
5 Mart Perşembe ´09 09:38 tarihinde yazmış
teşekkür ederim
 


Üye Resmi Ziyaretçi : Kabin
4 Kasım Çarşamba ´09 09:48 tarihinde yazmış
nice article, thanks for your share..
 


Üye Resmi Ziyaretçi : Suvari
18 Aralık Cuma ´09 22:53 tarihinde yazmış
Böyle bir hata alıyorum.

Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `Excel.Application': Access is denied. ' in C:\inetpub\wwwroot\Excel.php:4 Stack trace: #0 C:\inetpub\wwwroot\Excel.php(4): com->com('Excel.Applicati...') #1 {main} thrown in C:\inetpub\wwwroot\Excel.php on line 4
 


Üye Resmi Ziyaretçi : dilek öztürk
4 Şubat Perşembe ´10 11:41 tarihinde yazmış
kod parçacığını çalıştırdığımda
Fatal error: Call to undefined method com::saveas() in C:\AppServ\www\word.php on line 6
 hatası  mevcut

 kod örneği ;
   1.<?
   2.$Word = new COM("Word.Application") or die("Word Başlatılamıyor!");
   3.$Word->visible = 0;
   4.$Word->Documents->Add();
   5.$Word->Selection->TypeText("Bu metin php tarafından dinamik olarak yazdırılmıştır.");
  6. $Word->SaveAs("C:Deneme.doc");
  7.$Word->Quit();
  8. ?>
 


Üye Resmi Ziyaretçi : Bekir Sincer
25 Mart Perşembe ´10 01:51 tarihinde yazmış
@dilek öztürk:

6.satırı şu şekilde değiştirirseniz sorun kalmaz:

$Word->Documents[1]->SaveAs("C:\Deneme.doc");
 


Üye Resmi Ziyaretçi : erhan koçlar
6 Mayıs Perşembe ´10 14:43 tarihinde yazmış
ben bunu localhosta kaydetmek istediğimde hata veriyor..

acaba bu sınıf kullanarak saveas urlsini http olarak veremiyormuyuz?
 


Yeni Yorum

Önce Okuyun Yorumlarınızda sosyal, dini ve politik taraflı mesajlar, başkalarına saldırı sayılabilecek laflardan kaçının. Argo kelimeler, küfürler otomatik olarak silinecektir. Bu kural ihlalleri ip, üyelik, isiminizin banlanmasına yol açabilir.

Lütfen yardıma yönelik, konuyu uzatacak sorularınızı/yorumlarınızı forumda yazınız. Burası konu dahilindeki kısa soluklu öneri/yorumlar içindir. Aksi halde yorumunuzu göremeyebilir, uyarı alabilirsiniz.

Hatırlatmak amacıyla : html kodlarının, link yapmak, vb amacıyla gireceğiniz ekstra bilimum şeylerin çalışmayacağını belirteyim. Yorumlayıcı zaten linklerinizi otomatik çevirecek, gülücüklerinizi dönüştürecektir. Zengin metin özellikleri için araç çubuğundaki butonları kullanın.


İletişim Bilgileri


E-Posta adresiniz gösterilmeyecektir.

(unut)

Üye iseniz, giriş yapıp bu bilgileri girmeden hızlıca yorum yapabilirsiniz. Yorumunuzda resminiz/ikonunuz ve profil bağlantınız görüntülenecek, aynı zamanda güvenlik kodu girmek zorunda da kalmayacaksınız.
Üye olmak için buraya tıklayın.

Güvenlik Kodu
Güvenlik kodunu göremiyorsanız sayfayı yenileyin!


Yukarıdaki güvenlik kodunu bu kutuya yazın.

Yorum   
- +

Ad soyad, eposta ve yorum alanları
(⊗ işaretli alanlar) zorunludur.





mfyz.com'da şu an 12 ziyaretçi geziniyor. Toplam 114 makale, 208 yazı, 3000 gönderi var



  • RSS mfyz.com'u RSS beslemeleri ile takip edebilirsiniz
  • ServerTR Hosting Sponsoru ServerTR.com'a çok teşekkür ederiz
  • CC 2.5 Sitedeki materyalleri Creative Commons 2.5 Lisansı çerçevesinde kullanabilirsiniz. Lisans hakkında bilgi almak için tıklayın
  • İstatistikler Site ziyaret istatistikleri, konu, eğilim gibi ilginç istatistikler hakkında
  • Site Hakkında Site altyapısı, hazırlanışı, kurallar ve felsefesi hakkında
  • İletişim İletişim formu, iletişim bilgileri

mfyz.com Türk Programcılığının Gelişmesine Adanmıştır
HTML Standartlarına Uygundur

CSS Standartlarına Uygundur