HotXLS Belgeleri

Çalışma kitabı altyapı API'si

Bu genel üyeler; G/Ç'yi inceleyen, serileştirici uygulayan ya da çalışma kitapları boyunca hesaplamayı koordine eden entegrasyonları destekler; çalışma kitabı üyeleri lxHandleX içinde, çalışma alanı grafiği ise lxDepGraph içinde bildirilir

Sıradan uygulamalar önce hücre biçimlendirmesini, SaveAs'i, Recalculate'i ve dış çalışma kitabı çalışma alanı API'lerini kullanmalıdır; stil havuzu kaydı ve grafik zamanlaması, kütüphanenin serileştiricileri ve hesaplama motoruyla aynı indeks ve yaşam süresi kurallarını gerektirir

G/Ç gözlemi ve kurtarma

TXLSXWorkbook.OnReadCell, XLSX ayrıştırması sırasında somutlaştırılan her hücre için sayfa indeksini, satırı, sütunu, saklanan değeri ve formülü yazılabilir bir Cancel bayrağıyla alır; TXLSXWorkbook.OnWriteCell, bir hücre serileştirilmeden yazılabilir bir çıktı değeri ile Skip ve Cancel bayraklarını alır; böylece bir ana bilgisayar, çalışma kitabı API'sini doğrudan akış API'siyle değiştirmeden çıktıyı dönüştürebilir ya da atlayabilir

Her iki geri çağırı da 1 tabanlı çalışma sayfası ve hücre koordinatları kullanır ve bildirilen türleri TXLSXCellReadEvent ile TXLSXCellWriteEvent'tir; geri çağrılar etkin G/Ç işleminin içinde yürür, bu yüzden bir geri çağrıdan aynı çalışma kitabı üzerinde başka bir işlem başlatmaktan kaçının

TXLSXWorkbook.RecoveryMode varsayılan olarak False'tur ve açma sürerken desteklenen çalışma sayfası XML ayrıştırma başarısızlıklarının uyarı tanılamasına dönüşmesine izin verir; bu, yalnızca kısmen kurtarılmış çalışma sayfası içeriği bırakabilir. Okunamayan bir ZIP paketinden kurtarmayı garanti etmez, bu yüzden kaydetmeden önce tanılamaları ve kurtarılan veriyi inceleyin

TXLSXWorkbook.FireProgress, atanan ilerleme işleyicilerine bir aşama, durum, güncel sayı ve toplam sayı dağıtır; eski işleyici iş bildirimlerini, genişletilmiş işleyici tüm durumları alır; genişletilmiş bir işleyici iptal isteyebilir, ancak yazma sonu bildirimi zaten işlenmiş bir çıktıyı geri çeviremez

TXLSXWorkbook.AddDiagnostic, çalışma kitabının sahipliğindeki bir tanılamayı ekler ve döndürür; verilen kodu, önem derecesini, işlemi, iletiyi, yerel kodu, sayfa bağlamını ve paket parçası adını kaydeder, bir istisna verildiğinde istisna sınıf adını kopyalar ve OnDiagnostic'ı çağırır; istisnanın sahipliğini almaz ve onu fırlatmaz

function TXLSXWorkbook.AddDiagnostic(ACode: Integer;
  ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation;
  const AMessage: WideString; ANativeCode, ASheetIndex: Integer;
  const ASheetName, APartName: WideString;
  AException: Exception): TXLSDiagnostic;

Çıktı ilkeleri ve kaydedilmiş paket incelemesi

TXLSXWorkbook.CSVEmitFormulas varsayılan olarak False'tur ve formüllü hücrelerde CSV çıktısını formül sonuçlarından formül metnine çevirir; sonuç çıktısı formül değerlendirmesini dener ve değerlendirme başarısız olursa saklanan hücre metnine ya da değerine geri döner; TXLSXWorkbook.CSVQuoteAllStrings de varsayılan olarak False'tur ve metin alanlarını tırnaklamaya zorlarken sayılar, tarihler, Boolean'lar, Null ve Empty normal tırnaklama kurallarını korur

TXLSXWorkbook.LastSaveUsedStreaming, en son hazırlanan kaydetmenin çalışma sayfası akışı kullanıp kullanmadığını bildirir; TXLSXWorkbook.LastSavePeakRowXmlChars en büyük tamponlanmış satır XML parçasını, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars birleşik tamponlanmış çalışma sayfası XML'ini, TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars ise izlenen en büyük yardımcı XML parçasını bildirir; bunlar toplam süreç belleği ölçümleri değil serileştirici ölçümlemesinden karakter sayılarıdır ve ODS çıktısı XLSX çalışma sayfası akış yolunu kullanmaz

TXLSXWorkbook.TryCopyPreservedPart, uygun bir korunmuş kaynak parçasını, sıkıştırılmış gösterimi dahil, çağıranın sağladığı bir hedef TZipArchive içine kopyalamayı dener; kopyalandığında True, sıradan serileştirme gerektiğinde False döndürür; kaynak, dosya destekli bir açmadan kullanılabilir kalmalıdır; eksik ya da açıkça atılmış parçalar kopyalanamaz

Hedef arşivin sahibi çağırandır ve onu normal biçimde tamamlamalıdır; sıkıştırılmış kopyalama geri alma başarısızlığı yine istisna fırlatabilir ve bu yardımcı ne eksiksiz bir çalışma kitabı paketi kurar ne de ilişkilerini ya da içerik türlerini günceller

Şifreleme ve çalışma kitabı üst verisi

TXLSXWorkbook.SaveAsEncryptedAgile bir dosya adı ve boş olmayan parola alır, XLSX paketini bellekte serileştirir ve Agile şifreli kapsayıcısını yazar; başarıda 1, bildirilen bir başarısızlıkta -1 döndürür; isteğe bağlı VerifyEncryptedSave yazdıktan sonra yeniden açma denetimi yapar ve yöntem, şifrelenmemiş paket kadar da serileştirilmiş baytları için bellek ister

TXLSXWorkbook.VerifyEncryptedFile, verilen dosyayı ve parolayı geçici bir çalışma kitabında açar ve yalnızca o açma başarılı olduğunda True döndürür, istisnaları False'a çevirir; bu, her hücreyi güncel çalışma kitabıyla karşılaştırmak yerine okunabilirliği denetler ve şifrelenmemiş bir XLSX girdisi için normal OpenEncrypted davranışını izler

TXLSXWorkbook.DocSecurity genişletilmiş belge özelliği bit alanını saklar: 1 parola korumasını, 2 salt okunur önerisini, 4 dayatılmış salt okunur durumunu ve 8 açıklama kilitlemeyi gösterir; bu üst veri bitleri kendileri şifreleme ya da erişim kısıtlaması uygulamaz

TXLSXWorkbook.DocPropsTouched, belge özelliği yazarlarının izlenen özelliklerin yapılandırılıp yapılandırılmadığına karar vermek için kullandığı salt okunur bayraktır; Title gibi izlenen özellik atayıcıları onu atar, doğrudan atanan genişletilmiş üst veri ise otomatik olarak atamaz

TXLSXWorkbook.WorkbookProtectHash, yüklenmiş ya da üretilmiş eski çalışma kitabı koruma karmasını açığa çıkarır; normalde dört onaltılık basamak ya da parola karması yokken boş dizedir; korumayı değiştirmek için bu salt okunur değeri atamak yerine çalışma kitabı koruma yöntemlerini kullanın ve çalışma kitabı yapısı korumasını şifreli dosya depolamasından ayrı tutun

TXLSXWorkbook.ThemeMajorFont ve TXLSXWorkbook.ThemeMinorFont, temadan yüklenen başlık ve gövde yazı tiplerini açığa çıkarır ve varsayılan Office teması üretilirken adları geçersiz kılar; harfiyen korunmuş bir tema bu yazı tipi adı ayarlarına göre önceliklidir

Tablo stilleri ve serileştirici stil havuzları

TXLSXWorkbook.DefaultTableStyleName ve TXLSXWorkbook.DefaultPivotStyleName, yeni eklenen Excel tabloları ve PivotTable'ları için stil tablosunda saklanan varsayılan adları round-trip eder; onları atamak mevcut her nesneyi doğrudan yeniden biçimlemez

TXLSXWorkbook.ResolveTableStyle, adla çalışma kitabının sahibi olduğu özel bir stil döndürür; aksi hâlde desteklenen gömülü TableStyleLight1 ile TableStyleLight21, TableStyleMedium1 ile TableStyleMedium28 ya da TableStyleDark1 ile TableStyleDark11 arasını çözümler ve önbelleğe alır, bilinmeyen bir ad için nil döndürür; döndürülen stili serbest bırakmayın

TXLSXWorkbook.FastStyleAppend varsayılan olarak False'tur ve toplu oluşturmanın stil havuzlarında yinelenenleri ayıklama taramalarını ve sıradan bileşik stil kaydını atlamasına izin verir; çok sayıda farklı stil oluşturulurken daha hızlı ekleme karşılığında daha büyük bir stil tablosunu göze alır

function TXLSXWorkbook.RegisterCompositeXf(
  AFont, AFill, ABorder, ANumFmt, AAlign, AProt: Integer): Integer; overload;
function TXLSXWorkbook.RegisterCompositeXf(
  AFont, AFill, ABorder, ANumFmt, AAlign, AProt,
  ABuiltinNumFmt: Integer): Integer; overload;
function TXLSXWorkbook.RegisterLinkedCompositeXf(
  AFont, AFill, ABorder, ANumFmt, AAlign, AProt,
  AParentXfId: Integer; ALinkedParts: TXLSXFormatParts): Integer;

TXLSXWorkbook.RegisterCompositeXf, birleşik yazı tipi, dolgu, kenarlık, sayı biçimi, hizalama ve koruma indekslerini kaydeder ve mutlak cellXfs indeksini döndürür; bu bir bileşik havuz yuvası değildir; yedi bağımsız değişkenli aşırı yükleme, verilen özel biçim indeksine göre öncelikli gömülü bir sayı biçimi kimliği kabul eder, sıfır geçersiz kılmama demektir

TXLSXWorkbook.RegisterLinkedCompositeXf ayrıca ebeveyn stil XF kimliğini ve o ebeveyne bağlı biçim parçalarını kaydeder; farklı ebeveyn ya da bağlantı birleşimleri için ayrı girdiler tutar; o da mutlak bir cellXfs indeksi döndürür

TXLSXWorkbook.CompositeXfBase, ilk mutlak bileşik indeksi güncel tek boyutlu stil havuzlarından hesaplayarak döndürür; TXLSXWorkbook.CompositeXfCount kayıtlı bileşik girdileri sayar; GetCompositeXf'in kullandığı havuz yuvası mutlak indeksin tabanından çıkarılmasıdır ve havuzlar büyüdüğünde taban değişebilir, bu yüzden bu değerler güncel serileştirme durumuna aittir

TXLSXWorkbook.RegisterCondDxf, ödünç bir TXLSDxfStyle atfı kaydeder ve sıfır tabanlı diferansiyel stil kimliğini döndürür; aynı nesne atfı için mevcut bir kimliği yeniden kullanır; serileştirme onu kullanırken nesneyi canlı tutun

TXLSXWorkbook.ResetCondDxfs, ödünç stilleri serbest bırakmadan etkin kayıt sayısını temizler ve TXLSXWorkbook.CondDxfCount o sayıyı bildirir; kaydetme hazırlığı bu kaydı yeniden kurar, bu yüzden bu kimlikleri yazılan paketten bağımsız saklamayın

TXLSXWorkbook.PivotCaches, çalışma sayfası PivotTable'larının paylaştığı çalışma kitabının sahipliğindeki TXLSPivotCaches koleksiyonudur; AddPivotTable eşleşen bir kaynak önbelleği yeniden kullanır ya da oluşturur, RefreshPivotCache ise desteklenen üye kimliklerini koruyarak tanımlanan önbelleği yeniler

Hesaplama entegrasyonu

TXLSXWorkbook.RecalcThreads varsayılan olarak sıfırdır; sıfır ya da bir sıralı yeniden hesaplama kullanırken daha büyük değerler bağımsız formül cephelerinde işçi değerlendirmesini etkinleştirir; dinamik dizili çalışma kitapları bu ayardan bağımsız olarak sıralı geçiş kullanır, what-if veri tablosu düğümleri sıralı kalır ve işçilerin kullandığı kullanıcı işlevi işleyicileri iş parçacığı güvenli olmalıdır

TXLSXWorkbook.SolveCycleIteratively, yineleme etkinleştirildiğinde normalde Recalculate tarafından çağrılan gelişmiş bir giriş noktasıdır; o çalışma kitabının güncel bağımlılık grafiğinden düğüm indeksleri tüketir ve verilen TList içindeki döngü düğümlerini değerlendirir; bir çalışma alanı grafiğinden ya da başka bir çalışma kitabından gelen indeksler takas edilemez

Çözücü IterateCount ve IterateDelta kullanır, yineleme sınırına ulaşılsa bile son değerleri tutar ve yakınsamayı onaylamadan lxOk döndürür; dinamik dizi döngüsü üyeleri lxErrorCircumRef döndürür ve imzanın CycleCount bağımsız değişkeni grafik düğümlerindeki döngü sınıflandırmasının yerini almaz

Çalışma alanı bağımlılık grafiği kurulumu

TXLSWorkspaceDepGraph; çalışma kitabı açmadan ya da formül değerlendirmeden, çağıranın sağladığı çalışma kitabı kimlikleri ve sayfa kimlikleri boyunca formül bağımlılıklarını saklar; grafiği güncel formüllerden ve çözümlenmiş atıflardan kurun, sonra bu atıfları geçersiz kılan yapısal ya da formül değişikliklerinden sonra yeniden kurun

function TXLSWorkspaceDepGraph.AddNode(
  const AWorkbookIdentity, ASheetName: WideString;
  ASheetIndex, ARow, ACol, AOutRow2, AOutCol2: Integer;
  AVolatile: Boolean; AReferences: TXLSWorkspaceDepReferenceList;
  ARefUnstable: Boolean = False): Integer;
procedure TXLSWorkspaceDepGraph.DirtyTopoOrder(AOrder: TList;
  out ACycleNodeCount, ABlockedNodeCount: Integer);

TXLSWorkspaceDepGraph.AddNode bir formül düğümü ekler ve sıfır tabanlı düğüm indeksini döndürür; verilen atıfları, listelerinin sahibi olmak yerine kopyalar; sayfa indeksleri 1 tabanlıdır; kapsayıcı çıktı dikdörtgeninin sağ alt köşesi dahil satır ve sütun koordinatları sıfır tabanlı hesaplayıcı koordinatlarıdır

TXLSWorkspaceDepReferenceList.Add, çözümlenmiş bir hücre, aralık ya da tanımlı ad atıf kaydı ekler; TXLSWorkspaceDepReferenceList.Items o kayıtları sıfır tabanlı indeksle okur; TXLSWorkspaceDepReferenceList.Clear listeyi yeniden kullanım için sıfırlar; bu girdi listesinin sahibi çağırandır ve AddNode girdilerini kopyaladıktan sonra onu temizleyebilir ya da serbest bırakabilir

TXLSWorkspaceDepGraph.BuildEdges, saklanan hücre ve aralık atıflarını formül çıktı dikdörtgenlerine göre çözümler; LookupScan işaretli atıflar kirliliği yayar ama değerlendirme sırası dayatmaz ve döngü algılamasına katılmaz

TXLSWorkspaceDepGraph.NodeIndexOf, bir çalışma kitabını, sayfayı, satırı ve sütunu sıfır tabanlı bir düğüm indeksine ya da yokken -1'e çözümler; kullanılabilirken sayfa adını, yedek olarak bildirilen sayfa indeksini kullanır

TXLSWorkspaceDepGraph.FindDependentsOfDefinedName, verilen nil olmayan bir TList'i temizler ve belirtilen çalışma kitabı ile kapsamda adlandırılmış simgeye doğrudan atıf yapan düğüm indeksleriyle doldurur; negatif kapsam indeksi tüm kapsamlarla eşleşir; girdiler Pointer(NativeInt(NodeIndex)) olarak kodlanır, böylece nil bir liste girdisi sıfır numaralı düğümü gösterebilir

Çalışma alanı kirli üretimleri ve değerlendirme sırası

TXLSWorkspaceDepGraph.BeginDirtyGeneration yeni bir üretim başlatır, etkin kirli düğüm sayısını ve döngü engelli bayraklarını sıfırlar ve önceki kirli damgaları etkisizleştirir; yeni bir yeniden hesaplama geçişi için düğümleri işaretlemeden önce çağırın

TXLSWorkspaceDepGraph.MarkAllDirty güncel üretimdeki her düğümü işaretler; TXLSWorkspaceDepGraph.MarkWorkbookDirty tanımlanan çalışma kitabına ait düğümleri ve ona atıf yapan düğümleri tohumlar ve bağımlılara yayar; TXLSWorkspaceDepGraph.MarkVolatileDirty geçici düğümleri tohumlar, TXLSWorkspaceDepGraph.MarkCyclesDirty ise algılanan döngü bileşenlerini tohumlar ve kirliliklerini de yayar

TXLSWorkspaceDepGraph.IsNodeDirty, geçerli bir düğümün güncel üretim damgasını taşıyıp taşımadığını bildirir ve geçersiz indeks için False döndürür; TXLSWorkspaceDepGraph.DirtyGeneration o damgayı açığa çıkarır, TXLSWorkspaceDepGraph.DirtyNodeCount ise etkin üretimde işaretlenen düğümleri sayar

TXLSWorkspaceDepGraph.DirtyTopoOrder, nil olmayan çağıran sahipli bir TList ister, onu temizler ve bağımlılık sırasındaki kirli düğüm indeksleriyle doldurur; kirli döngü düğümlerini ve o döngülerce engellenen düğümleri hariç tutar; iki çıktı sayısı döngü üyelerini engellenen akış düğümlerinden ayırır ve liste girdileri aynı işaretçi kodlu sıfır tabanlı indeks kuralını kullanır

TXLSWorkspaceDepGraph.HasRefUnstable, herhangi bir düğümün atıf-kararsız bayrağıyla eklenip eklenmediğini bildirir; formül atıfları değerlendirme sırasında değişebiliyorken çağıranın eskimiş bir statik zamanlamaya güvenmemesini sağlar; grafik o değişen atıfları kendisi çözümlemez

Çalışma alanı grafiği incelemesi

TXLSWorkspaceDepGraph.NodeCount formül düğümlerini sayar, TXLSWorkspaceDepGraph.ReferenceCount kopyalanan atıfları sayar ve TXLSWorkspaceDepGraph.EdgeCount kurulan bağımlılık kenarlarını bildirir; kenar istatistiklerini tüketmeden önce BuildEdges çağırın

TXLSWorkspaceDepGraph.WorkbookCount, atıfların getirdiği kimlikler dahil intern edilmiş çalışma kitabı kimliklerini sayar ve TXLSWorkspaceDepGraph.WorkbookIdentities bunları sıfır tabanlı indeksle sıralar; bu kimlik dizeleri grafik anahtarlarıdır, bir dış dosyanın yüklendiğine dair kanıt değildir

TXLSWorkspaceDepGraph.ComponentCount, bileşen kurulumundan sonra güçlü bağlantılı bileşen sayısını bildirir; bu kurulum MarkCyclesDirty, DirtyTopoOrder ya da bileşen erişimiyle tetiklenir; her Components kaydı NodeStart, NodeCount ve IsCycle sağlar

TXLSWorkspaceDepGraph.ComponentNodes, o bileşenler için düzleştirilmiş sıfır tabanlı düğüm indeks dizisini açığa çıkarır; bir bileşenin NodeStart'ından NodeStart + NodeCount - 1'ine kadar indekslenir; sayılar ve indeksli kayıtlar güncel grafiği tanımlar ve grafik yeniden kurulduktan sonra yeniden alınmalıdır

Sıradan çalışma kitabı giriş noktaları için ek XLSX cephesi üyeleri ve XLSX cephesi genel bakış sayfalarıyla devam edin