Php ile Excel’e Aktar Fonksiyonu (Export Excel with Php)

Ahmet

Sıradan bloglardan birisi :) Google+

Sevebilirsin...

21 Yanıt

  1. Taner dedi ki:

    Hocam Merhaba. Ben table kullanarak excel e aktarma yapıyorum php de. Fakat satırları atarken 2 satırı birleştirip atıyor.

    • Ahmet dedi ki:

      Merhaba Taner Hocam,

      Fonksiyon içerisindeki aşağıdaki satırları silip veya yorum satırı yapıp, çıktıyı paylaşabilir misiniz?
      Bu sayede hatanın kaynağını bulabiliriz.

      header(“Content-disposition: attachment; filename=”.$filename.”.xls”);
      echo “\xEF\xBB\xBF”; // UTF-8 BOM

  2. Mehmet dedi ki:

    Hocam eline sağlık güzel olmuş. Bu kodlarla multiple sheet çalışma şansımız var mı? 2. sayfayı bir türlü oluşturamadım.

    • Ahmet dedi ki:

      Merhaba Mehmet,

      Maalesef html çıktı ile 2. bir sayfa yapılabileceğini zannetmiyorum. Bunun için PHPExcel classını tavsiye edebilirim. Bunun için aşağıdaki bağlantıyı inceleyebilirsiniz.
      http://stackoverflow.com/a/3269351

      İyi çalışmalar dilerim…

  3. Kutsi Akıllı dedi ki:

    $data[]=array(
    ‘Satır 3 Kolon 1 Verisi’,
    ‘Satır 3 Kolon 2 Verisi’,
    ‘Satır 3 Kolon 3 Verisi’,
    40.01
    );

    içinde while ile veri çekerek nasıl kullanabilirim? Teşekkürler

    • Ahmet dedi ki:

      Merhaba Kutsi,
      Aşağıdaki kodlar işini görecektir.

      $data=array();
      $sql=mysql_query("SELECT * FROM uyeler");
      while($row=mysql_fetch_row($sql)){
          $data[]=$row;
      }
      
      // While döngüsü ile $data arrayına değerleri ekledik.
      • Kutsi Akıllı dedi ki:

        Yardım için teşekkürler. SQL sorgumu sizin kodunuza eklemeden test ettim sorun yok ekrana basıyor ancak sizin kodu, verdiğiniz şekilde modifiye edince gelmesi gereken data (Kolon Başlıkları) ve diğer hiçbir şey gelmiyor. Bir yerde break oluyor anladığım kadarıyla. Zira altında bıraktığım sabit verileri de göstermiyor XLS dosyası içinde.. Çözüm öneriniz varsa mutlu olurum…

  4. Kutsi Akıllı dedi ki:

    Özellikle yukarıda belirttim. Ekrana basıyor echo ile sorun yok…

  5. Kutsi Akıllı dedi ki:

    $docroot = $_SERVER[‘DOCUMENT_ROOT’];

    $dbfile=$docroot.”/admin/_include/mysql-conf.php”;
    include($dbfile);

    //Connect to Database
    connecttodb();

    function exportExcel($filename=’ExportExcel’,$columns=array(),$data=array(),$replaceDotCol=array()){
    header(‘Content-Encoding: UTF-8’);
    header(‘Content-Type: text/plain; charset=utf-8′);
    header(“Content-disposition: attachment; filename=”.$filename.”.xls”);
    echo “\xEF\xBB\xBF”; // UTF-8 BOM

    $say=count($columns);

    echo ”;
    foreach($columns as $v){
    echo ”.trim($v).”;
    }
    echo ”;

    foreach($data as $val){
    echo ”;
    for($i=0; $i < $say; $i++){

    if(in_array($i,$replaceDotCol)){
    echo '’.str_replace(‘.’,’,’,$val[$i]).”;
    }else{
    echo ”.$val[$i].”;
    }
    }
    echo ”;
    }
    }

    /* TANIMLAMALAR */

    $columns=array();

    $data=array();

    /*
    $replaceDotCol
    Decimal kolonlardaki noktayı (.) virgüle (,) dönüştürüelecek kolon numarası belirtilmelidir.
    Örneğin; Kolon 4’ün verilerinde nokta değilde virgül görülmesini istiyorsanız
    ilgili kolonun array key numarasını belirtmelisiniz. İlk kolonun key numarası 0’dır.
    */
    $replaceDotCol=array(3);

    /* Sütun Başlıkları */
    $data[]=array();
    $sql=mysql_query(“SELECT subeadi FROM bayiler”);
    while(list($bayim)=mysql_fetch_row($sql)){

    $data[]=$bayim;

    }

    /* Satır Verileri */
    $data[]=array(
    ‘Satır 1 Kolon 1 Verisi’,
    ‘Satır 1 Kolon 2 Verisi’,
    ‘Satır 1 Kolon 3 Verisi’,
    17.45
    );

    $data[]=array(
    ‘Satır 2 Kolon 1 Verisi’,
    ‘Satır 2 Kolon 2 Verisi’,
    ‘Satır 2 Kolon 3 Verisi’,
    35.10
    );

    $data[]=array(
    ‘Satır 3 Kolon 1 Verisi’,
    ‘Satır 3 Kolon 2 Verisi’,
    ‘Satır 3 Kolon 3 Verisi’,
    40.01
    );

    exportExcel(‘DosyaAdi’,$columns,$data,$replaceDotCol);

    ?>

  6. İbrahim Başeğmez dedi ki:

    Selamlar. Kolon adlarını da dinamik yapabiliyor muyuz?
    Eğer yapabiliyorsak, örnek yazabilir misiniz?

  7. fatma nur dedi ki:

    merabalar kalite performans yönetim sistemi projesi yazdım.ilgili sayfalara tıklanınca performans bilgilerini excel ile almak istiyorum nasıl yapacağımı anlamadım yardımcı olur musunuz? Kolay gelsin

  8. Hasan dedi ki:

    2016 Ekran çıktısı: http://i.hizliresim.com/kBM1ym.png

  9. Ali İhsan dedi ki:

    Merhaba, bir sorun yaşadım da çözümü konusunda yardım isteyecektim. Veritabanında veri çekerek excel çıktısı aldığımda sayfada ne varsa hepsini excel’e aktarmaya çalıştı yani menü vs. ne varsa. Bunu önlemenin bir yolu var mı acaba?

    • Ahmet dedi ki:

      Selamlar Ali İhsan,

      Excel’e export ettiğin sayfada herahangi bir echo yapmaman gerekir. exportExcel() fonksiyonundan önce header veya başka bir çıktı verdiğin için bu hata meydana geliyor.

      İyi çalışmalar…

  10. Sefa dedi ki:

    Merhaba Hocam,

    Benim bir sorum var, mysql den aldığımız datayı mssql den sorgulatıp excele nasıl aktarabiliriz? Yardımcı olursanız çok sevinirim.

  11. koray yaman dedi ki:

    bu cok kalıtelı olmus ama ben elle duzenlemelerı yaparım yeterkı kayıt edecek halde bana xls versın dersenız
    asp de kullandıgım bır sıstemı php de gordum daha yenı basladıgım ıcın php scrıptıne oturtamam ama kodu vereyım mantık aynı bu dırek php sayfanızı xls formatına donusturur
    dıkatt edılmesı gerken kısım dıv degıl bıdlıgınız standart tablo ıle yapın ozaman her tablo bır hucre mantıgında verır

    kod :
    header(“Content-type: application/vnd.ms-excel; name=’excel'”);
    header(“Content-Disposition: attachment; filename=exportfile.xls”);
    header(“Pragma: no-cache”);
    header(“Expires: 0”);

    deneyın yapan yapılmıs halını yayınlasın ısteyen arkadaslar dırek burdan ulassın

  12. merhaba dedi ki:

    merhabalar excele çıktı veriyor ama sadece a1 kolonunda
    html veriyi basıyor sizin dosyanızı indirdim direk çalıştırdım.

  13. faruk dedi ki:

    iyi günler ben php ile değilde js ile yapıyorum excel export işlemni mevcut table lımı basıyorum sıkıntı yok ama ben customize etmek istiyorum header ve footer eklemek istiyorum nasıl yapabilirim

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorum onaylama sistemi etkin; yorumunuzun yayınlanması biraz zaman alabilir.