Php ile excel oluşturmak için farklı kütüphaneler mevcut. Bu yazımda PhpSpreadsheet kütüphanesini kullanacağım. Eğer OOP(Object Oriented Programming) seviyorsanız bu kütüphaneyide seveceğinizi düşünüyorum. Bu kütüphaneyle xlsx ya da xls uzantılı excel dosyaları oluşturabilirsiniz.

Aşağıdaki örnek Symfony ile hazırlanmıştır. Symfony ile excel dosyası oluşturup indirmek için örneği kullanabilirsiniz.

Kaynak: https://github.com/PHPOffice/phpspreadsheet/

Döküman: https://phpspreadsheet.readthedocs.io/en/latest/

Gereksinimler

PhpSpreadsheet Yükleme

Yükleme işlemi için composer kullanacağız. Composer ile PhpSpreadsheet’i yüklemek için aşağıdaki kodu terminalizde çalıştırabilirsiniz.

composer require phpoffice/phpspreadsheet

Kullanım

Aşağıdaki örneklerde A sütünün 1’inci sıradaki hücresinde ‘Hello Word’ yazan bir excel dosyası oluşturuluyor ve oluşturulan bu dosya BinaryFileResponse olarak return ediliyor. BinaryFileResponse olarak return ettiğinizde dosyanın indirilmesini sağlayabilirsiniz.

Xlsx Uzantılı Excel Oluşturma

Xlsx uzantılı dosya oluşturmak için Xlsx objesinden $writer adında bir parametre oluşturuyoruz.

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Symfony\Component\HttpFoundation\BinaryFileResponse;

$spreadsheets = new Spreadsheet();
$spreadsheet = $spreadsheets->getActiveSheet();
$spreadsheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheets);

$fileName = 'excel_file_name.xlsx';
$temporaryFile = tempnam(sys_get_temp_dir(), $fileName);

$writer->save($temporaryFile);

return (new BinaryFileResponse($temporaryFile))
    ->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE, $fileName);

Xls Uzantılı Excel Oluşturma

Xls uzantılı dosya oluşturmak için Xls objesinden $writer adında bir parametre oluşturuyoruz.

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
use Symfony\Component\HttpFoundation\BinaryFileResponse;

$spreadsheets = new Spreadsheet();
$spreadsheet = $spreadsheets->getActiveSheet();
$spreadsheet->setCellValue('A1', 'Hello World !');

$writer = new Xls($spreadsheets);

$fileName = 'excel_file_name.xls';
$temporaryFile = tempnam(sys_get_temp_dir(), $fileName);

$writer->save($temporaryFile);

return (new BinaryFileResponse($temporaryFile))
    ->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE, $fileName);

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz