PHP ile Excel Export Dizi Örneği

Merhabalar PHP ile Excel export işlemine bir örnek dizi…

<?php 


  $data = array(
         '0' => array('Name'=> 'Parvez', 'Status' =>'complete', 'Priority'=>'Low', 'Salary'=>'001'),
         '1' => array('Name'=> 'Alam', 'Status' =>'inprogress', 'Priority'=>'Low', 'Salary'=>'111'),
         '2' => array('Name'=> 'Sunnay', 'Status' =>'hold', 'Priority'=>'Low', 'Salary'=>'333'),
         '3' => array('Name'=> 'Amir', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'444'),
         '4' => array('Name'=> 'Amir1', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'777'),
         '5' => array('Name'=> 'Amir2', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'777')
        );
        $filename =  time().".xls";      
        header("Content-Type: application/vnd.ms-excel");
        header("Content-Disposition: attachment; filename=\"$filename\"");

        ExportFile($data);
        function ExportFile($records) {
            $heading = false;
                if(!empty($records))
                  foreach($records as $row) {
                    if(!$heading) {
                      // display field/column names as a first row
                      echo implode("\t", array_keys($row)) . "\n";
                      $heading = true;
                    }
                    echo implode("\t", array_values($row)) . "\n";
                }
            exit;
        }

        
?>

Bu PHP kodu, bir dizi veriyi Excel formatında indirilebilir hale getiriyor. İşlevi, verilen verileri alıp bir .xls dosyası olarak dışa aktarmaktır. Şimdi adım adım açıklayalım:

Bu kısım, her biri “Name”, “Status”, “Priority”, ve “Salary” (Maaş) gibi özelliklere sahip olan birkaç kişinin verisini tutan bir dizi oluşturur. Bu dizi daha sonra Excel dosyasına yazılacak.

Bu kısım, oluşturulan dosyanın adını ve indirilmesini sağlayan HTTP başlıklarını tanımlar:

time() fonksiyonu, o anki Unix zaman damgasına göre bir dosya adı üretir (örneğin 1630980000.xls gibi).
Content-Type başlığı, bu dosyanın bir Excel dosyası olduğunu belirtir.
Content-Disposition başlığı ise tarayıcıya dosyayı bir ek dosya olarak indirilmesi gerektiğini söyler ve dosya adını ayarlar.
Burada ExportFile() fonksiyonu, verilerin Excel dosyasına dönüştürülmesinden sorumludur.

Bu fonksiyonun işleyişi şu şekildedir:

Eğer veri varsa, her satırı döngü ile işler.
implode(“\t”, array_keys($row)) ifadesi, ilk satırda sütun adlarını (örneğin “Name”, “Status”, “Priority”, “Salary”) sekme (\t) ile ayırarak yazar.
Sonraki satırlarda her kişinin verileri sekme ile ayrılarak yazdırılır (örneğin Parvez complete Low 001).
Her satır bittiğinde yeni bir satır (\n) eklenir.
Tüm veriler işlendiğinde, exit; ile fonksiyon sonlanır ve dışa aktarma işlemi tamamlanır.
Sonuç:
Bu kod, belirli bir veriyi tablo halinde Excel formatında dışa aktarmak için kullanılır. Veri, sekme ile ayrılmış şekilde yazılır ve tarayıcı bu veriyi .xls formatında indirilmek üzere hazırlar.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)