Yüklü çalışma kitabı yapısı jenerasyonu
Yapısal jenerasyonlar, bir okuyucunun düşük maliyetli anlık görüntüler almasına ve bağımlı olduğu çalışma kitabı topolojisi değiştiğinde geçişin reddedilmesini sağlar
Jenerasyon kaynakları
| Motor | Hücre deposu jenerasyonu | Çalışma sayfası koleksiyonu jenerasyonu |
|---|---|---|
| Klasik XLS | TXLSWorksheet.CellStructureGeneration | TXLSWorksheets.StructureGeneration |
| XLSX | TXLSXWorksheet.CellStructureGeneration veya TXLSXCells.StructureGeneration | TXLSXSheets.StructureGeneration |
Her özellik salt okunur bir UInt64 değeridir ve değişim miktarının tam değeri sözleşmeye tabi değildir
Geçersiz kılan işlemler
Saklanan hücrelerin oluşturulması, kaldırılması veya temizlenmesi, topoloji gerçekten değiştiğinde hücre deposu jenerasyonunu değiştirir
Satır veya sütun ekleme ve silme, koordinat taşıma, paketlenmiş ekleme veya somutlaştırma ve açık hücre indeksi yeniden derlemeleri de hücre deposu geçiş durumunu geçersiz kılar
Çalışma sayfalarının eklenmesi, silinmesi, taşınması veya temizlenmesi, koleksiyon gerçekten değiştiğinde çalışma sayfası koleksiyonu jenerasyonunu değiştirir
Geçersiz kılmayan işlemler
Mevcut bir hücrenin değeri, formülü, önbelleğe alınmış değeri veya biçimini değiştirmek hücre deposu jenerasyonunu değiştirmez
Bir çalışma sayfasını yeniden adlandırmak veya etkinleştirmek çalışma sayfası koleksiyonu jenerasyonunu değiştirmez; etkisiz taşımalar, eksik silmeler veya zaten boş olan bir koleksiyonun temizlenmesi geçerli jenerasyonu korur
Doğrulama
Önceki bir jenerasyon için oluşturulmuş geçiş durumunu ilerletmeden veya okumadan önce XlsValidateStructureGeneration çağırın
Uyuşmazlık durumu EXLSLoadedCellCursorInvalidated oluşturur; böylece çağıranlar yapısal geçersizleştirmeyi veri veya biçim hatalarından ayırt edebilir
ExpectedGeneration := Worksheet.CellStructureGeneration;
{ Read or retain traversal state }
XlsValidateStructureGeneration(
ExpectedGeneration,
Worksheet.CellStructureGeneration);
Klasik çalışma kitabı imleci
IXLSWorkbook.CreateLoadedCellCursor klasik çalışma kitabının toplam jenerasyonunu yakalar ve her MoveNext ve Current çağrısından önce doğrular
İmleç, ayrılmış seyrek depolama dallarını sabit imleç durumuyla doğrudan geçer ve sahip olunan TXLSLoadedCellSnapshot değerleri döndürür
Boolean aşırı yükleme, bağımsız biçimlendirilmiş saklanan boşlukların dahil edilip edilmeyeceğini sabitler; devralınan satır, sütun ve çalışma sayfası biçimleri boş imleç girdileri oluşturmaz
XLSX çalışma kitabı imleci
TXLSXWorkbook.CreateLoadedCellCursor, her çalışma sayfası hücre deposu ve çalışma sayfası koleksiyonu tarafından paylaşılan bir çalışma kitabı yaşam süresi kiralaması ve toplam topoloji jenerasyonu yakalar
Somutlaştırılmış yol seyrek satır bloklarını doğrudan okur; paketlenmiş yol ise hücreleri somutlaştırmadan veya anlık görüntülerde iç işaretçileri tutmadan paketlenmiş yineleyiciyi yeniden kullanır
Boolean aşırı yükleme, her iki depolama gösteriminde de yalnızca stile sahip saklanan boşlukları dahil edebilir; stil girilmemiş Empty ve Null yer tutucuları dışarıda bırakılmaya devam eder
Çalışma kitabının serbest bırakılması, çalışma sayfası deposu serbest bırakılmadan önce kiralamasını geçersiz kılar; böylece sonraki imleç erişimi EXLSLoadedCellCursorInvalidated oluşturur
Eşzamanlılık sınırı
Jenerasyon denetimleri yalnızca fail-fast algılama sağlar ve eşzamanlı çalışma kitabı değişikliği ile geçişi iş parçacığı açısından güvenli hale getirmez