# Excel Şablonunda Çoklu Section Template Row Sistemi ## 📋 Genel Bakış Bu sistem, Excel şablonlarında farklı section'lar için özelleştirilmiş template row'ların yönetimini sağlar. Her section için ayrı template row'lar tanımlanabilir ve veriler bu template'lere göre dinamik olarak yerleştirilir. ## 🔑 Temel Özellikler - Çoklu section desteği (Section 1, 2, 3) - Dinamik satır ekleme ve yönetimi - Akıllı offset hesaplama sistemi - Formül ve merge işlemlerinin otomatik güncellenmesi - Detaylı loglama sistemi ## 💡 Çalışma Prensibi ### 1. Section Bazlı Veri Yönetimi ```php $sectionedDetails = []; foreach($resultDetail as $detail) { $section = intval($detail->section); if (!isset($sectionedDetails[$section])) { $sectionedDetails[$section] = []; } $sectionedDetails[$section][] = $detail; } ``` ### 2. Template Row Offset Hesaplama ```php $totalAddedRows = 0; // Önceki section'larda eklenen toplam satır $startRow = $originalStartRow + $totalAddedRows; // Offset uygulanmış satır ``` ## 🛠️ Teknik Detaylar ### Template Row İşlemleri 1. **Template Row Tanımlama** - Her section için ayrı template row numarası belirlenir - Template row'lar Excel şablonunda önceden tanımlanır 2. **Veri Yerleştirme** - Her section için template row kopyalanır - Placeholder'lar gerçek verilerle değiştirilir - Boş section'lar için placeholder'lar temizlenir 3. **Formül ve Merge Yönetimi** - Formüller offset'e göre güncellenir - Merge işlemleri yeni satır numaralarına göre ayarlanır ### Örnek Section Yapısı ```json { "section1": { "template_row": 14, "data": [...], }, "section2": { "template_row": 17, "data": [...], }, "section3": { "template_row": 22, "data": [...], } } ``` ## 📊 Veri Akışı 1. SQL sorgusundan section bazlı veri alınır 2. Veriler section'lara göre gruplanır 3. Her section için: - Template row kopyalanır - Veriler yerleştirilir - Offset hesaplanır - Formüller güncellenir - Merge işlemleri yapılır ## 🔍 Loglama Sistemi ```php function logProcessInfo($message, $data = [], $type = 'info') { $logData = [ 'timestamp' => date('Y-m-d H:i:s'), 'type' => $type, 'message' => $message, 'memory_usage' => round(memory_get_usage() / 1024 / 1024, 2) . ' MB', 'data' => $data ]; // Log kayıt işlemleri... } ``` ## ⚠️ Dikkat Edilmesi Gerekenler 1. **Template Row Pozisyonları** - Template row'lar arası mesafe yeterli olmalı - Section sıralaması doğru yapılmalı 2. **Veri Doğrulama** - Section numaraları kontrol edilmeli - Veri tipleri doğrulanmalı 3. **Performans** - Büyük veri setlerinde bellek yönetimi - Formül hesaplama optimizasyonu ## 🔄 İşlem Adımları 1. **Başlangıç** - Excel şablonu yüklenir - SQL sorguları çalıştırılır - Section'lar belirlenir 2. **Veri İşleme** - Her section için veriler gruplanır - Template row'lar kopyalanır - Offset hesaplanır 3. **Sonlandırma** - Template row'lar temizlenir - Excel dosyası kaydedilir - PDF dönüşümü yapılır ## 📈 Performans İyileştirmeleri - Bellek yönetimi optimizasyonu - Formül hesaplama stratejisi - Merge işlemlerinin optimize edilmesi - Gereksiz döngülerin azaltılması ## 🎯 Kullanım Senaryoları 1. **Çoklu Bölümlü Raporlar** - Farklı veri grupları - Özelleştirilmiş formatlar - Dinamik içerik 2. **Karmaşık Form Şablonları** - Çoklu veri girişi - Özel formatlama - Otomatik hesaplamalar ## 🔧 Hata Yönetimi - Detaylı loglama sistemi - Section bazlı hata yakalama - Veri doğrulama kontrolleri - Bellek yönetimi izleme