PHP ile Excel Çıktı Almak ~ AyQo Blog
  • Ücretsiz Mobil Chat ScriptiÜcretsiz chat sitesi açabileceğiniz bir script yazmak istedim.
  • LOL İtibar Puanı KasmaDünyanın en çok oynanan ve takip edilen oyunu LOL konusunda söylemek istediğim birkaç şey var.
  • Online Anti-Virüs Tarama ve Koruma SiteleriFirmalar arası rekabet sonucu ortaya çıkan çevrim içi veya Online tarama sisteminizi korumaya yardımcı olabilecek düzeyde.
  • Çoklu Skype Açma Programsız (Resimli Anlatım)Windows live'dan kalan bir alışkanlıktır Messanger'de çoklu oturum açmak.
  • PHP Youtube Bot YapımıPHP ile Youtube'dan video bilgilerini çekme işlemini çok basit kodlarla anlatacağım.
1 2 3 4 5

29 Aralık 2011

Yazan AyQo
Bir çok arkadaşımın ardarda bu konu hakkında sorular sormasının ardından faydalı olacağını düşündüğüm bir excel çıktı class yazıyor ve sizinle paylaşmak istiyorum. Türkçe karakter sorunu yaşamayacağınızı düşünüyorum bazı fonksiyonalrın ne anlama geldiği makalenin sonunda belirtilmiştir.
PHP ile Excel Çıktı Almak
<?php
class excel(){
// Döküman Download dosya adı
public $filename=null;
// Döküman için sütun başlıkları
public $sutunlar=null;
// Döküman için Satır isimleri
public $satirlar=null;
// Döküman Başlığı
public $baslik=null;
// Hangi Dil kodlamasından Aktarılacak
public $fromencoding=’UTF-8′;
// Hangi dil kodlamasına çevrilecek
public $toencoding=’ISO8859-9′;
// Dökümanımız hangi satırdan başlayacak
public $baslangicsatir=0;
// Dökümanımız Hangi Sütundan Başlayacak
public $baslangicsutun=0;
public function __construct(){
}
// Excel Dökümanımızın Başlangıcını Belirleyecek Fonksiyon
private function xlsBOF() {
echo pack(“ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0);
return;
}
// Excel Dökümanımızın Sonunu Belirleyecek Fonksiyon
private function xlsEOF() {
echo pack(“ss”, 0x0A, 0×00);
return;
}
// Excel Dökümanımıza Rakamsal ifadeleri yazacak olan fonksiyon
private function xlsWriteNumber($Row, $Col, $Value) {
echo pack(“sssss”, 0×203, 14, $Row, $Col, 0×0);
echo pack(“d”, $Value);
return;
}
// Excel Dökümanımıza Striing ifadeleri yazacak olan fonksiyon
private function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack(“ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L);
echo $Value;
return;
}
function download(){
// İndirme dosya Adı verilmemişse isim verelim
if (is_null($this->filename)){
$this->filename=substr(MD5(uniqid(rand())),0,10);
}
// dosya isminde xls uzantısını kontrol edelim
if (substr($filename,-4)!=’.xls’){
$this->filename.=’.xls’;
}
// Çıktımızın Excel olarak çıktılanmasını ve Download İşleminin başlamasını sağlayalım
header(“Pragma: public”);
header(“Expires: 0″);
header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″);
header(“Content-Type: application/force-download”);
header(“Content-Type: application/octet-stream”);
header(“Content-Type: application/download”);;
header(“Content-Disposition: attachment;filename=$this->filename “);
header(“Content-Transfer-Encoding: binary “);
// Çalışma Kitabımızın Başını belirleyelim
xlsBOF();
//Başlangıç Satırını belirleyelim
$satir=$this->baslangicsatir;
//Başlangıç Sütununu belirleyelim
$sutun=$this->baslangicsutun;
//Eğer Varsa Başlığı Yazalım
if (!is_null($this->baslik)){
$this->xlsWriteLabel($satir,$sutun,mb_convert_encoding(stripslashes($this->baslik),$this->toencoding,$this->fromencoding);
$satir++;
}
//Eğer Varsa Sütunları Yerleştirelim
if (!is_null($this->sutunlar)){
$count=count($sutunlar)+$this->baslangicsutun;
if (!is_null($satirlar))
$sutun++;
for ($i=$sutun;$i<$count;$i++){
$this->xlsWriteLabel($satir,$i,mb_convert_encoding(stripslashes($this->sutunlar[$i]),$this->toencoding,$this->fromencoding);
}
}
// eğer Varsa Satırları Yerlşetirelim
if (!is_null($satirlar)){
$count=count($satirlar)+$this->baslangicsatir;
for ($i=$satir;$i<$count;$i++){
$this->xlsWriteLabel($i,$sutun,mb_convert_encoding(stripslashes($this->sutunlar[$i]),$this->toencoding,$this->fromencoding);
}
}
// Çalışma Kitabımızın Sonunu belirleyelim
xlsEOF();
}
}
?>
bu class ile şimdilik sadece başlığı, satırları ve sütunları devamında değerlerimizi yerlşetireceğiz. o biraz daha karışık olacak iki boyutlu diziler olacak tek boyutlu diziler olacak şimdilik 3 boyutluya girmek istemiyorum.

0 yorum:

Yorum Gönder