PhpSpreadsheet (Excel / CSV Okuma & Yazma)
artiframe add spreadsheet komutu, PHP ile Excel (.xlsx), CSV ve ODS dosyaları üretmenin / okumanın tartışmasız endüstri standardı olan phpoffice/phpspreadsheet paketini kurar.
Veritabanı dökümlerini (Export) Excel'e aktarırken veya toplu ürün yükleme (Import) senaryolarında hayat kurtarır.
💡 Bilgilendirme: Direkt Kullanım
ArtiFrame, bu paket için
ArtiFrame, bu paket için
src/Service klasörüne özel bir entegrasyon (Wrapper/Stub) sınıfı kopyalamaz. Kurulum yalnızca Composer üzerinden paketi projeye dahil eder.
Aşağıdaki kodlar, paketin kendi orijinal işleyişini gösteren basit kullanım örnekleridir. Daha fazlası için PhpSpreadsheet Dokümantasyonunu inceleyebilirsiniz.
Kurulum
terminal
$ artiframe add spreadsheet
Kullanım Örneği: Excel Oluşturma ve İndirtme (Export)
Veritabanından aldığınız bir kullanıcı listesini anında Excel'e dönüştürüp tarayıcıya indirtelim.
ExportController.php
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// 1. Yeni bir çalışma kitabı oluştur
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 2. Sütun Başlıklarını Yaz
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Ad Soyad');
$sheet->setCellValue('C1', 'E-posta');
// Başlıkları kalın (Bold) yap
$sheet->getStyle('A1:C1')->getFont()->setBold(true);
// 3. Verileri Yaz (Normalde Veritabanından gelir)
$sheet->setCellValue('A2', '1');
$sheet->setCellValue('B2', 'Ahmet Yılmaz');
$sheet->setCellValue('C2', '[email protected]');
$sheet->setCellValue('A3', '2');
$sheet->setCellValue('B3', 'Ayşe Demir');
$sheet->setCellValue('C3', '[email protected]');
// 4. Excel (Xlsx) formatında yazıcıyı hazırla
$writer = new Xlsx($spreadsheet);
// 5. HTTP Header'larını ayarlayarak tarayıcıya "Bu bir Excel dosyasıdır, İndir!" talimatı ver
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Kullanicilar.xlsx"');
header('Cache-Control: max-age=0');
// Dosyayı tarayıcının output akışına (php://output) gönder
$writer->save('php://output');
exit;
Kullanım Örneği: Excel Okuma (Import)
ImportController.php
<?php
use PhpOffice\PhpSpreadsheet\IOFactory;
// Yüklenen dosyanın yolunu belirt
$inputFileName = '/tmp/urunler.xlsx';
// Dosyayı oku ve hafızaya al
$spreadsheet = IOFactory::load($inputFileName);
// Aktif sayfadaki tüm veriyi standart PHP dizisine (Array) dönüştür
$data = $spreadsheet->getActiveSheet()->toArray();
foreach ($data as $row) {
echo "Ürün: " . $row[0] . " | Fiyat: " . $row[1] . "<br>";
}