CreateLoadedCellCursor yöntemi
Yüklü bir XLSX çalışma kitabında saklanan hücreler üzerinde pull modelinde bir imleç oluşturur; bağımsız biçimlendirilmiş boşlukları dahil etme seçeneği sunar
Sözdizimi
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Gezinme sırası ve maliyet
İmleç çalışma sayfalarını koleksiyon sırasında, ardından hücreleri artan satır ve sütun sırasına göre ziyaret eder
SheetIndex, Row ve Col bire dayalı genel koordinatlardır
Somutlaştırılmış çalışma sayfaları, sıralı bir hücre listesi oluşturmadan ayrılmış 256 satırlık seyrek bloklarından doğrudan okunur
Paketlenmiş çalışma sayfaları, paketlenmiş depolama yineleyicisi üzerinden doğrudan okunur ve gezinme sonrasında paketlenmiş olarak kalır
İmleç durumu çalışma kitabı boyutuna göre sabittir ve XLSX satır veya sütun sınırlarına göre boyutlanmış diziler ayırmaz
Parametresiz aşırı yükleme; yalnızca stile sahip boşlukları, saklanan Empty yer tutucularını ve saklanan Null yer tutucularını atlar
Somutlaştırılmış veya paketlenmiş depolamadan bağımsız biçimlendirilmiş boş koordinatları, paketlenmiş hücreleri somutlaştırmadan dahil etmek için True geçirin
Stilsiz Empty ve Null yer tutucuları her iki modda da dışarıda bırakılır
Anlık görüntü alanları
| Alan | Anlam |
|---|---|
SheetIndex / SheetName | Yakalama anında sahip çalışma sayfasının kimliği |
Row / Col | Bire dayalı hücre koordinatları |
StyleIndex | Somutlaştırılmış veya paketlenmiş depolamadan yakalanan XLSX hücre biçim indeksi |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError veya xlckBlank |
Value | Geçerli hücre için yakalanan, sahip olunan Variant değeri |
Formula | Formül hücreleri için formül metni, aksi takdirde boş dize |
TXLSLoadedCellSnapshot içindeki dizeler ve Variant'lar sahip olunan değerlerdir ve iç hücre veya paketlenmiş depolama işaretçilerini açığa çıkarmaz
XLSX formül hücrelerinde Value o anda saklanan önbelleğe alınmış değerdir ve gezinme formülü yeniden hesaplamaz
xlckBlank için Value Unassigned, Formula boş ve StyleIndex saklanan hücre biçimini tanımlar
Durum, geçersizleştirme ve yaşam süresi
State, ilk başarılı MoveNext'e kadar xlccBeforeFirst, Current kullanılabilir olduğu sürece xlccActive ve geçiş tamamlandıktan sonra xlccEof olur
İlk hücreden önce veya EOF sonrasında Current okumak EXLSLoadedCellCursorState oluşturur
Saklanan hücre oluşturmak veya silmek, paketlenmiş depolamanın somutlaştırılması, açık indeks yeniden derlemeleri veya çalışma sayfası ekleme, silme, taşıma ve temizleme işlemleri imleci geçersiz kılar
Sonraki MoveNext veya Current çağrısı bu durumda EXLSLoadedCellCursorInvalidated oluşturur
Mevcut bir hücrenin değerini, formülünü veya biçimini değiştirmek imleci geçersiz kılmaz ve halihazırda yakalanmış bir anlık görüntü değişmeden kalır
İmleçten önce çalışma kitabının serbest bırakılması da, imleci asılı bir çalışma kitabı işaretçisiyle bırakmak yerine EXLSLoadedCellCursorInvalidated oluşturur
Jenerasyon doğrulaması fail-fast algılamadır ve eşzamanlı değişiklik ile gezinmeyi iş parçacığı açısından güvenli hale getirmez
Örnek
Cursor := Workbook.CreateLoadedCellCursor;
while Cursor.MoveNext do
begin
Cell := Cursor.Current;
Memo1.Lines.Add(Format('%s!R%dC%d = %s',
[Cell.SheetName, Cell.Row, Cell.Col, VarToStr(Cell.Value)]));
end;