kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
romegames 1
romegames
Bvural41 1
Bvural41
Best Studio 1
Best Studio
BlackFullMoon 1
BlackFullMoon
NovaLst 1
NovaLst
SLyFeLLowTR 1
SLyFeLLowTR
xranzei 1
xranzei
InfernoShade 1
InfernoShade
shrpnl 1
shrpnl
D 1
delimuratt
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP Excel’e Veri Aktarma

DumanInc

Web Development
Telefon Numarası Onaylanmış Üye
Fahri Üye
TM Üye
Katılım
19 Nis 2009
Konular
423
Mesajlar
1,880
Çözüm
14
Online süresi
3mo 2h
Reaksiyon Skoru
968
Altın Konu
38
TM Yaşı
17 Yıl 1 Ay 25 Gün
Başarım Puanı
267
MmoLira
3,804
DevLira
9
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Excel’e kaydetme sınıfının oluşturulması

Verileri PHP ile Excel’e kaydetmek için sınıf oluşturmak zorunda değiliz. Fakat bu şekilde yapılmış bir uygulama diğer projelerde de rahatlıkla kullanımın önünü açmaktadır. Excel sınıfını oluşturup adım adım neler yapıldığını inceleyelim.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

<?php
class Excel {
private $fp=null;

function __construct()
{
$this->fp = fopen('php://output', 'w');
}

function doldur($data=array()){
//UTF-8 Excel
fputs($this->fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
if ($this->fp)
{
foreach($data as $d)
{
if(!isset($isaret)) {
fputcsv($this->fp,array_keys($d), ";");
$isaret = true;
}
fputcsv($this->fp, $d, ";");
}
}
fclose($this->fp);
}

function kaydet($dosya){
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Type: text/csv');
header("Content-Disposition: attachment; filename=$dosya.csv;");
header('Content-Transfer-Encoding: binary');
}
}
__construct: Kurucu metot ile yazmak için bir tane file stream açıyoruz. $fp özelliği içinde de bu bilgi tutuluyor.

doldur: Doldur metotu ile Veritabanından yada her hangi bir listeden çektiğimiz verileri açtığımız dosyaya dolduruyoruz. Burada dikkat edilmesi gereken nokta 13.satırdaki koddur. Dosyanın kodlamasının BOM olarak yapıldığını ( chr(0xEF) . chr(0xBB) . chr(0xBF) karakterleri ile ifade ediyoruz. Türkçe Karakter sorunu buradaki kod ile çözülüyor. Sonraki satırlarda gelen değleri dosyaya yazdırmak oluyor.

kaydet: Kaydet metodu ile veriyi hangi isimde kayıt edileceğinin bilgisini veriyoruz.



PHP ile Excel’e Aktarma

Sınıfı ve fonksiyonlarını yazdıktan sonra kullanımı için aşağıdaki gibi örnek bir veri hazırlıyoruz. Bu veriler PDO ile MySql veri tabanından da çekilmiş olabilirdi.


1
2
3
4
5
6
7
8
9
10
11

$veri = [
["ad" => "Hayri", "soyad" => "Koç", "yas" => 75],
["ad" => "Mehmet", "soyad" => "Kacar", "yas" => 14],
["ad" => "Murat", "soyad" => "Ülgen", "yas" => 41],
["ad" => "Recep", "soyad" => "Ören", "yas" => 47],
["ad" => "Hüseyin", "soyad" => "İlkDağcı", "yas" => 23],
["ad" => "Şerif", "soyad" => "Bağcı", "yas" => 4],
["ad" => "Ayşe" ,"soyad" => "Uyanık", "yas" => 7]
];
Verileri yukarıdaki gibi hazırladıktan sonra aşağıdaki gibi sınıfın bir örneğini oluşturup kayıt işlemini gerçekleştiriyoruz.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<?php
include 'excel.php';

$veri = [
["ad" => "Hayri", "soyad" => "Koç", "yas" => 75],
["ad" => "Mehmet", "soyad" => "Kacar", "yas" => 14],
["ad" => "Murat", "soyad" => "Ülgen", "yas" => 41],
["ad" => "Recep", "soyad" => "Ören", "yas" => 47],
["ad" => "Hüseyin", "soyad" => "İlkDağcı", "yas" => 23],
["ad" => "Şerif", "soyad" => "Bağcı", "yas" => 4],
["ad" => "Ayşe" ,"soyad" => "Uyanık", "yas" => 7]
];

$excel =new Excel(); //excel örneği oluştur
$excel->doldur($veri); //veriler ile tabloları doldur
$excel->kaydet("yazilimbilisim"); //yazilimbilisim adında kaydet


Php ile MySql Verilerini Excel’e Aktarma

Sınıf haline çevrilmiş excel kütüphanesi ile verileri her hangi veri veri kaynağından okuyup aktarmak kolay olduğunu belirtmiştim. Aşağıdaki örnek ise PDO ile MySql veritabanından okuma yapıp excel tablosuna kaydetme işlemini gerçekleştiriyor.


Screenshot_4-2.png


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

<?php
include 'excel.php';

/* veri tabanı bağlantısı*/
$dsn = 'mysql:dbname=kutuphane;host=127.0.0.1';
$kullanici = 'root';
$sifre = '';

try {
$baglanti = new PDO($dsn, $kullanici, $sifre);
} catch (PDOException $e) {
echo 'Bağlantı kurulamadı: ' . $e->getMessage();
}

/*verilerin tümünü okuma*/
$sorgu=$baglanti->prepare("SELECT * FROM ogrenciler");
$sorgu->execute();
$liste=$sorgu->fetchAll();

/*okunan verileri excel'e kaydetme*/
$excel =new Excel();
$excel->doldur($liste);
$excel->kaydet("yazilimbilisim");
İşte PHP tablosunu Excel’e aktarmak bu kadar kolay :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst