Php ile exel dosyası oluşturabilmek için yardımcı sınıflar kullanmamız gerekmektedir. İnternet üzerinden kısa bir araştırma ile bu yönde yazılmış bir çok sınıf ile karşılaşacaksınızdır. Bu makale oluşturduğumuz örnek için Oliver Schwarz adlı github kullanıcısının hazırlamış olduğu sınıfı kullanmış olacağız.
https://github.com/oliverschwarz/php-excel
Github adresinden orjinal kaynakları edinebilirsiniz.
İndirdiğimiz sınıfı çalışma alanımıza dahil ettikten sonra diziler ile tablo oluşturma işlemleri sağlayacağız
require 'excel.class.php';
$data = [
0 =>
['Sütun 1', 'Sütun 2', 'Sütun 3'],
[1, 'Kod Hocası', 'Dev.'],
[2, 'Geleceği Yazanlar Otağı', 'Dev.']
];
Yukarıdaki örnekte oluşturacağımız exel dosyası içindeki bir tabloya yazacağımız veriler gözükmetedir. $data dizi içerisindeki her bir array yapısı exel dosyamızın içerisindeki satırlara eşit gelmektedir.
$xls = new Excel_XML;
$xls->addWorksheet('tabloadı', $data);
$xls->sendWorkbook('kodhıcası.xls');
Oluşturduğumuz tablo yapısını exel e aktarabilmek için öncelikle sınıfımı çağırmamız gerekmektedir. $xls değişkeni içersine sınıfımı aldıktan sonra ikincisatırda gözüktüğü gibi addWorksheet() fonksiyonu içersine iki değer almaktadır. bu değerlerden ilki oluşturduğumuz tablo adına eş gelmektedir, ikinci değer ise yukarıda oluşturduğumuz tablo içerine yazılacak olan satır ve verilerdir.
sendWorkbook() Fonksiyonu ise artık tabloyu oluşturdan sonra veri içerisine yazıldıktan sonra exel dosyamızın adını belirttiğimiz ve exel dosyasını local e indirmemize yardımcı olan fonksiyondur.
$data = [
0 =>
['T1 Sütun 1', 'T1 Sütun 2', 'T1 Sütun 3'],
[1, 'Kod Hocası', 'Dev.'],
[2, 'Geleceği Yazanlar Otağı', 'Dev.']
];
$data2 = [
0 =>
['T2 Sütun 1', 'T2 Sütun 2', 'T2 Sütun 3'],
[1, 'Kod Hocası', 'Dev.'],
[2, 'Geleceği Yazanlar Otağı', 'Dev.']
];
$xls = new Excel_XML;
$xls->addWorksheet('T1 tabloadı', $data);
$xls->addWorksheet('T2 tabloadı2', $data2);
$xls->sendWorkbook('test.xls');
Eğer exel dosyamızın içerisinde birden fazla tablo oluşturmak istiyorsak yukarıdaki örnekteki gibi her tablomuz için ayrı dizi oluşturup bu dizileri addWorksheet() fonksiyonu içerisinde belirtebiliriz.
Yorum yapabilmek için giriş yapmanız gerekmektedir.