HotXLS Belgeleri

Çalışma sayfası bölme seçimi API'si

TXLSWorksheet ve TXLSXWorksheet, seçili hücre ve aralık alanlarını okumak veya değiştirmek için aynı bölme duyarlı yöntemleri sunar

Paylaşılan türler ve yöntemler

TXLSPanePosition = (xlspTopLeft, xlspTopRight,
  xlspBottomLeft, xlspBottomRight);
TXLSSelectedAreas = array of WideString;

function GetSelectedAreas(APane: TXLSPanePosition;
  out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition;
  const Areas: array of WideString;
  ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition;
  out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition;
  ARow, ACol: Integer): Boolean;

Alan metni A1 hücre veya aralık başvuruları kullanır ve ActiveAreaIndex, döndürülen veya sağlanan alan dizisinde sıfır tabanlı bir dizindir

Alan dizisi kaynak sırasını korur ve çakışan aralıklar içerebilir; çünkü seçim sırası ve çakışma, çalışma sayfası görünüm durumunun bir parçasıdır

Anlık görüntü sahipliği

GetSelectedAreas, dizeleri ve uzunluğu çağırana ait olan yeni bir dinamik dizi döndürür; böylece sonucu değiştirmek veya serbest bırakmak çalışma sayfasını değiştiremez

İstenen bölme için temsil edilen bir seçim grubu yoksa sonuç boştur ve ActiveAreaIndex değeri -1'dir

Eksik bir bölmeyi okumak asla çalışma kitabında bölme, seçim nesnesi, hücre veya aralık oluşturmaz

Klasik XLS kayıt birleştirmesi

Klasik XLS her bölme için bağımsız bir mantıksal seçim grubu tutar ve aynı bölme koduna sahip art arda gelen BIFF Selection kayıtlarını kaynak sırasına göre birleştirir

Etkin satır, etkin sütun ve ActiveAreaIndex bir gruptaki her kayıt tarafından paylaşılır ve dizin, tek bir fiziksel kayıt yerine tüm birleşik alan dizisini adresler

Dokunulmamış bir grubun kaydedilmesi özgün kayıt gövdelerini korur; düzenlenmiş bir grup ise her parçada aynı birleşik etkin dizinle, en fazla 1369 alanlık art arda gelen parçalar hâlinde yazılır

Tek bir bölmeyi düzenlemek diğer bölme gruplarını değiştirmez ve çalışma sayfası kopyaları tüm bölme seçim durumunu korur

Yapısal düzenlemeler

Tüm satır ve tüm sütun eklemeleri veya silmeleri, her iki çalışma kitabı motorunda da temsil edilen her bölme için sıralı seçim gruplarını yeniden eşler

Hayatta kalan alanlar sıralarını ve etkin alanın kimliğini korur; etkin alan kaldırılırsa ilk hayatta kalan ardıl seçilir, ardıl kalmadığında ise son hayatta kalan öncül izler

Her alan kaldırılırsa grup, silme sınırındaki tek bir hücreye dönüşür; seçilen hayatta kalan alanın dışında kalan bir etkin hücre ise o alanın sol üst hücresine geri düşer

Geçersiz klasik kayıtlar

Hatalı biçimlendirilmiş, bitişik olmayan veya çelişen Klasik Selection kayıtları opak kalır ve türlü alan sorgusu üzerinden açığa çıkarılmaz

Kayıt doğrulaması sırasında reddedilen bir fiziksel kayıt, 1304 tanılama koduyla xlsDiagnosticSelectionRecordInvalid bildirir; yalnızca birleşime özgü çelişki ise çalışma sayfası EOF'unda bir grup tanılaması bildirir; kaydetme, her özgün kayıt gövdesini bayt bayt yeniden yazar

Büyük seçimler

Alan ayrıştırma, normalleştirme, yapısal yeniden eşleme ve anlık görüntü oluşturma tek geçişli oluşturucular veya geometrik kapasite büyümesi kullanır; böylece büyük seçim grupları amortize edilmiş doğrusal kalır

Bölme kaydırma koordinatları

TryGetWindowScroll tek bir mantıksal bölme için ilk görünür hücreyi döndürür ve ScrollWindow bunu değiştirir; her iki motorda da 1 tabanlı çalışma sayfası satır ve sütun koordinatları kullanılır

Üst bölmeler genel pencere satırını, alt bölmeler alt bölme satırını, sol bölmeler genel pencere sütununu ve sağ bölmeler sağ bölme sütununu paylaşır

Eksik bir bölme, görünüm durumu oluşturmadan ve sorgu çıktılarını sıfıra ayarlayarak False döndürür; geçersiz koordinatlar da herhangi bir eksen değiştirilmeden False döndürür

Klasik XLS üst ve sol eksenleri Window2 içinde, alt ve sağ eksenleri Pane kaydında kalıcı kılar; XLSX ise karşılık gelen sheetView ve pane topLeftCell değerlerini bağımsız olarak korur

Atomik güncellemeler

SelectAreas, çalışma sayfası yazma işlemini edinmeden önce her A1 başvurusunu ve etkin dizini doğrular

Yöntem, hatalı biçimlendirilmiş veya boş giriş, geçersiz etkin dizin ya da geçerli bölünmüş veya dondurulmuş geometride bulunmayan bir bölme için False döndürür; önceki seçim değiştirilmeden bırakılır

Başarılı bir çağrı True döndürür ve mevcut motora özgü seçim nesnelerini ve eski API'leri korur

Delphi örneği

if Sheet.SelectAreas(xlspBottomRight,
  ['C4:E5', 'D5:F6', 'G7'], 1) then
begin
  Areas := Sheet.GetSelectedAreas(xlspBottomRight,
    ActiveAreaIndex);
  UseSelection(Areas, ActiveAreaIndex);
end;

if Sheet.ScrollWindow(xlspBottomRight, 20, 8) and
   Sheet.TryGetWindowScroll(xlspBottomRight, Row, Col) then
  ShowVisibleCell(Row, Col);

Uyumluluk

Klasik SelectAreas(const Areas; ActiveAreaIndex) aşırı yüklemesi ve XLSX SelectAreas(const Areas; ActiveAreaIndex; APane) aşırı yüklemesi değişmeden kullanılabilir durumda kalır

Klasik ScrollRow ve ScrollColumn özellikleri ile XLSX sıfır tabanlı SetPaneScroll, GetPaneScroll, ScrollRow ve ScrollCol üyeleri de değişmeden kullanılabilir durumda kalır

Paylaşılan cephe, mantıksal bölme adlarını açıkça dönüştürür; böylece çağıranlar, iki dosya biçiminin kullandığı sayısal bölme kodlarına bağlı olmaz