Filament’in export action’ı oldukça kullanışlıdır. Hızlı bir şekilde ayarlanabilir, sıralı (queued) exportları destekler, sütun eşlemesi içerir, bildirimleri yönetir ve oluşturulan dosyaların geçmişini Export modeliyle saklar. Çoğu kullanım durumu için, tam olarak ihtiyaç duyduğunuz şeydir.
Ancak yakın zamanda, yerel export’un çözemediği bir sınırlama ile karşılaştım.
XLSX gerçekte Excel değilse
XLSX gerçekte Excel değilse
Mali verileri veya Filament tablosundan ölçümleri export ediyordum. Export başarılı oldu. Dosya indirildi. Excel dosyayı hiçbir sorun yaşamadan açtı.
Ancak sorun, her bir miktarın gerçek sayısal değer yerine metin olarak export edilmesiydi.
Bir muhasebeci için bu hemen birkaç sorunu ortaya çıkarıyor:
- Excel formülleri, örneğin
=SUM(), doğru çalışmıyor - Hücre aralığını seçtiğinizde Excel’in durum çubuğunda toplamlar görüntülenmiyor
- Sayısal değerlere dayalı koşullu biçimlendirme güvenilmez hale geliyor
- Dosya kullanılmadan önce ek manuel temizlik gerekiyor
Teknik olarak export veriyi içeriyordu. Pratikte ise kullanışlı değildi.
Temel sebep basit: Filament’in export sistemi, CSV tarzı exportlar etrafında tasarlanmıştır. Bu birçok senaryo için mükemmeldir, ancak PhpSpreadsheet ve Laravel Excel tarafından sunulan tam elektronik tablo yeteneklerini ortaya koymaz.
Ayrıca, tamamen farklı bir ikinci gereksinimim vardı: her ay için bir sayfa, birleşik başlıklar, kenar çizgileri, koşullu biçimlendirme ve özel düzenlerle yıllık bir rapor. Sadece bir tablo dökümü değil, bir rapor istiyordum.
Neden doğrudan Laravel Excel kullanmıyorsunuz?
Neden doğrudan Laravel Excel kullanmıyorsunuz?
Laravel Excel bu sorunların tamamını zaten çözmektedir. PhpSpreadsheet üzerine inşa edilmiştir ve hücre türleri, sayı formatları, formüller, stillendirme ve birden fazla çalışma sayfası üzerinde tam kontrol sağlar.
Açık bir çözüm, Filament’in export action’ını tamamen bırakıp sıfırdan özel exportlar inşa etmek olurdu. Ancak bu, Filament’in sunduğu her şeyi kaybetmek demekti:
- Export modalı ve seçenekler formu
- Sütun eşleştirme UI
- Queue yönetimi
- İlerleme bildirimleri
- İndirme bağlantıları
Exportmodeli geçmişi
Bunların hepsini yeniden inşa etmek istemedim. Basitçe altında farklı bir dosya oluşturucu istiyordum.
Tam makale, Filament Mastery üzerinde ücretsiz üyelere sunulmaktadır – kodun tamamına erişmek için ücretsiz bir hesap oluşturun.
Kaynak: Orijinal Makale


