De här publika medlemmarna stöder integreringar som inspekterar I/O, implementerar serialiserare eller samordnar beräkning över arbetsböcker, med arbetsboksmedlemmar deklarerade i lxHandleX och arbetsytans graf deklarerad i lxDepGraph
Vanliga program bör först använda cellformatering, SaveAs, Recalculate samt arbetsytans API:er för externa arbetsböcker; registrering i formatpooler och grafschemaläggning kräver samma index- och livstidskonventioner som bibliotekets serialiserare och beräkningsmotor
TXLSXWorkbook.OnReadCell tar emot bladindex, rad, kolumn, lagrat värde och formel för varje materialiserad cell under XLSX-tolkningen, med en skrivbar Cancel-flagga; TXLSXWorkbook.OnWriteCell tar emot ett skrivbart utdatavärde plus Skip- och Cancel-flaggor innan en cell serialiseras, så att en värd kan transformera eller utelämna utdata utan att ersätta arbetsboks-API:t med direkt ström-API
Båda callbacks använder ettbaserade kalkylblads- och cellkoordinater, och deras deklarerade typer är TXLSXCellReadEvent och TXLSXCellWriteEvent; callbacks körs inuti den aktiva I/O-åtgärden, så undvik att starta en annan åtgärd på samma arbetsbok från en callback
TXLSXWorkbook.RecoveryMode är False som standard och låter stödda tolkningsfel i kalkylblads-XML bli varningsdiagnostik medan öppningen fortsätter, vilket kan lämna endast delvis återställt kalkylbladsinnehåll; den garanterar ingen återställning från ett oläsbart ZIP-paket, så granska diagnostik och återställda data innan du sparar
TXLSXWorkbook.FireProgress skickar en fas, ett tillstånd, aktuellt antal och totalt antal till de tilldelade progresshanterarna, där den äldre hanteraren tar emot arbetsnotifieringar och den utökade hanteraren tar emot alla tillstånd; en utökad hanterare kan begära avbrott, men skrivslutsnotifieringen kan inte ångra redan engagerade utdata
TXLSXWorkbook.AddDiagnostic lägger till och returnerar en diagnostik som ägs av arbetsboken, registrerar angiven kod, allvarlighetsgrad, åtgärd, meddelande, inbyggd kod, bladkontext och paketdelsnamn, kopierar undantagets klassnamn när ett undantag anges och anropar OnDiagnostic; den tar inte ägarskap över undantaget och utlöser det inte
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas är False som standard och växlar CSV-utdata från formelresultat till formeltext för formelceller; resultatutdata försöker formelutvärdering och faller tillbaka till lagrad celltext eller -värde när utvärderingen misslyckas; TXLSXWorkbook.CSVQuoteAllStrings är också False som standard och tvingar fram citattecken runt textfält, medan tal, datum, Boolean, Null och Empty behåller de normala citatteringsreglerna
TXLSXWorkbook.LastSaveUsedStreaming rapporterar huruvida det senaste förberedda sparandet använde kalkylbladsströmning, medan TXLSXWorkbook.LastSavePeakRowXmlChars rapporterar det största buffrade rad-XML-fragmentet, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars rapporterar den kombinerade buffrade kalkylblads-XML:en, och TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars rapporterar det största spårade hjälp-XML-fragmentet; det här är teckenräkningar från serialiserarinstrumentering i stället för totala processminnesmätningar, och ODS-utdata använder inte XLSX-vägen för kalkylbladsströmning
TXLSXWorkbook.TryCopyPreservedPart försöker kopiera en behörig bevarad källpart, inklusive dess komprimerade representation, till en uppringartillhandahållen mål-TZipArchive och returnerar True när den kopierats eller False när normal serialisering krävs; källan måste förbli tillgänglig från en filbaserad öppning, och saknade eller uttryckligen kasserade delar kan inte kopieras
Upringaren äger målarkivet och måste avsluta det normalt; ett misslyckande vid återrullning av komprimerad kopia kan fortfarande utlösa ett undantag, och den här hjälparen konstruerar varken ett komplett arbetsbokspaket eller uppdaterar dess relationer eller innehållstyper
TXLSXWorkbook.SaveAsEncryptedAgile accepterar ett filnamn och ett icke-tomt lösenord, serialiserar XLSX-paketet i minnet och skriver den Agile-krypterade containern, med returvärde 1 vid lyckat resultat eller -1 vid rapporterat fel; valfri VerifyEncryptedSave utför en återöppningskontroll efter skrivningen, och metoden kräver minne för det okrypterade paketet såväl som dess serialiserade byte
TXLSXWorkbook.VerifyEncryptedFile öppnar angiven fil och lösenord i en tillfällig arbetsbok och returnerar True bara när den öppningen lyckas, med undantag omvandlade till False; det här kontrollerar läsbarhet i stället för att jämföra varje cell med den aktuella arbetsboken, och följer det normala OpenEncrypted-beteendet för okrypterad XLSX-indata
TXLSXWorkbook.DocSecurity lagrar det utökade bitfältet för dokumentegenskaper: 1 betecknar lösenordsskydd, 2 rekommendation om skrivskydd, 4 tvunget skrivskydd och 8 annoteringslåsning; de här metadatabitarna tillämpar inte själva någon kryptering eller åtkomstbegränsning
TXLSXWorkbook.DocPropsTouched är den skrivskyddade flagga som dokumentegenskapsskrivarna använder för att avgöra om spårade egenskaper har konfigurerats; inställare för spårade egenskaper som Title sätter den, medan direkt tilldelad utökad metadata inte sätter den automatiskt
TXLSXWorkbook.WorkbookProtectHash exponerar den inlästa eller genererade äldre hashen för arbetsboksskydd, normalt fyra hexadecimala siffror eller en tom sträng när ingen lösenordshash finns; använd arbetsbokens skyddsmetoder för att ändra skydd i stället för att tilldela detta skrivskyddade värde, och håll skydd av arbetsboksstrukturen åtskilt från krypterad fillagring
TXLSXWorkbook.ThemeMajorFont och TXLSXWorkbook.ThemeMinorFont exponerar rubrik- och brödtexttypsnitten som lästs från temat och skriver över namnen när standardofficetemat genereras; ett ordagrant bevarat tema har företräde framför de här typsnittsnamnsinställningarna
TXLSXWorkbook.DefaultTableStyleName och TXLSXWorkbook.DefaultPivotStyleName sparar och läser tillbaka standardnamnen i formattabellen för nyskapade Excel-tabeller och pivottabeller; att tilldela dem formaterar inte om varje befintligt objekt direkt
TXLSXWorkbook.ResolveTableStyle returnerar en arbetsboksägd anpassad stil efter namn, i annat fall slår den upp och cachar stödda inbyggda TableStyleLight1 till TableStyleLight21, TableStyleMedium1 till TableStyleMedium28 eller TableStyleDark1 till TableStyleDark11 och returnerar nil för ett okänt namn; frigör inte den returnerade stilen
TXLSXWorkbook.FastStyleAppend är False som standard och låter masskapande hoppa över dedupliceringsskanningar i formatpoolerna och den vanliga registreringen av sammansatta format, med en större formattabell i utbyte mot snabbare infogning när många olika stilar skapas
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 registrerar de kombinerade indexen för typsnitt, fyllnad, ram, talformat, justering och skydd och returnerar det absoluta cellXfs-indexet, inte en slot i sammansättningspoolen; överladdningen med sju argument accepterar ett inbyggt talformat-ID som har företräde framför det angivna anpassade formatindexet, där noll betyder ingen överskrivning
TXLSXWorkbook.RegisterLinkedCompositeXf registrerar dessutom överordnat stil-XF-ID och de formatdelar som är länkade till den föräldern, med separata poster för olika kombinationer av förälder eller länkning; den returnerar också ett absolut cellXfs-index
TXLSXWorkbook.CompositeXfBase returnerar det första absoluta sammansättningsindexet, räknat från de aktuella endimensionella formatpoolerna, medan TXLSXWorkbook.CompositeXfCount räknar registrerade sammansättningsposter; en poolslot som GetCompositeXf använder är det absoluta indexet minus basen, och basen kan ändras när de poolerna växer, så de här värdena hör till det aktuella serialiseringstillståndet
TXLSXWorkbook.RegisterCondDxf registrerar en lånad TXLSDxfStyle-referens och returnerar dess nollbaserade ID för differentiell stil, med återanvändning av ett befintligt ID för samma objektreferens; håll objektet vid liv medan serialiseringen använder det
TXLSXWorkbook.ResetCondDxfs rensar det aktiva registrets räknare utan att frigöra lånade stilar, och TXLSXWorkbook.CondDxfCount rapporterar den räknaren; sparförberedelsen bygger upp registret igen, så spara inte de här ID:n oberoende av paketet som skrivs
TXLSXWorkbook.PivotCaches är den arbetsboksägda samlingen TXLSPivotCaches som kalkylbladens pivottabeller delar; AddPivotTable återanvänder en matchande källcache eller skapar en, och RefreshPivotCache uppdaterar den identifierade cachen med stödda medlemsidentiteter bevarade
TXLSXWorkbook.RecalcThreads är noll som standard, där noll eller ett använder seriell omberäkning och större värden aktiverar utvärdering i arbetstrådar av oberoende formelfronter; arbetsböcker med dynamiska matriser använder ett seriellt varv oavsett den inställningen, what-if-datatabellnoder förblir seriella, och användarfunktionshanterare som arbetstrådarna använder måste vara trådsäkra
TXLSXWorkbook.SolveCycleIteratively är en avancerad ingångspunkt som normalt anropas av Recalculate när iteration är aktiverad, förbrukar nodindex ur arbetsbokens aktuella beroendegraf och utvärderar cykelnoder i den angivna TList:en; index från en arbetsytegraf eller en annan arbetsbok är inte utbytbara
Lösaren använder IterateCount och IterateDelta, behåller slutvärdena även om iterationsgränsen nås och returnerar lxOk utan att intyga konvergens; medlemmar i dynamiska matriscykler returnerar lxErrorCircumRef, och signaturens CycleCount-argument ersätter inte cykelklassificering på grafens noder
TXLSWorkspaceDepGraph lagrar formelberoenden över uppringartillhandahållna arbetsboks- och bladidentiteter utan att öppna arbetsböcker eller utvärdera formler; bygg en graf från de aktuella formlerna och uppslagna referenserna, och bygg om den efter strukturella eller formeländringar som ogiltigförklarar de referenserna
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 lägger till en formelnod och returnerar dess nollbaserade nodindex och kopierar de angivna referenserna i stället för att äga deras lista; bladindex är ettbaserade, medan rad- och kolumnkoordinater, inklusive den inklusiva utdatarektangelns nedre högra hörn, är kalkulatorns nollbaserade koordinater
TXLSWorkspaceDepReferenceList.Add lägger till en uppslagen referenspost för cell, område eller definierat namn, TXLSWorkspaceDepReferenceList.Items läser de posterna via nollbaserat index, och TXLSWorkspaceDepReferenceList.Clear återställer listan för återanvändning; uppringaren äger den indatalistan och kan rensa eller frigöra den efter att AddNode har kopierat dess poster
TXLSWorkspaceDepGraph.BuildEdges slår upp lagrade cell- och områdesreferenser mot formelutdatarektanglar; referenser markerade LookupScan för vidare att noder behöver omberäknas, men ålägger ingen utvärderingsordning och deltar inte i cykeldetektering
TXLSWorkspaceDepGraph.NodeIndexOf slår upp en arbetsbok, ett blad, en rad och en kolumn till ett nollbaserat nodindex eller -1 när det saknas, med bladnamnet när det finns och det deklarerade bladindexet som reserv
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName rensar en angiven icke-nil TList och fyller den med de nodindex som direkt refererar till den namngivna symbolen i angiven arbetsbok och scope, där ett negativt scopeindex matchar alla scope; poster kodas som Pointer(NativeInt(NodeIndex)), så en nil-listpost kan representera nod noll
TXLSWorkspaceDepGraph.BeginDirtyGeneration startar en ny generation, återställer antalet aktiva dirty-noder och cykelblockeringsflaggorna och gör tidigare dirty-stämplar inaktiva; anropa den innan noderna markeras för ett nytt omberäkningsvarv
TXLSWorkspaceDepGraph.MarkAllDirty markerar varje nod i den aktuella generationen; TXLSWorkspaceDepGraph.MarkWorkbookDirty startar med noder som tillhör den identifierade arbetsboken och noder som refererar till den och propagerar sedan till beroenden, medan TXLSWorkspaceDepGraph.MarkVolatileDirty startar med volatila noder och TXLSWorkspaceDepGraph.MarkCyclesDirty startar med upptäckta cykelkomponenter och propagerar också deras status
TXLSWorkspaceDepGraph.IsNodeDirty rapporterar huruvida en giltig nod bär den aktuella generationsstämpeln och returnerar False för ett ogiltigt index; TXLSWorkspaceDepGraph.DirtyGeneration exponerar den stämpeln och TXLSWorkspaceDepGraph.DirtyNodeCount räknar noderna som markerats i den aktiva generationen
TXLSWorkspaceDepGraph.DirtyTopoOrder kräver en icke-nil TList som uppringaren äger, rensar den och fyller den med dirty-nodindex i beroendeordning, exklusive dirty-cykelnoder och noder som blockeras av de cyklerna; dess två utdataräkningar skiljer cykelmedlemmar från blockerade underordnade noder, och listposterna använder samma pekarkodade nollbaserade indexkonvention
TXLSWorkspaceDepGraph.HasRefUnstable rapporterar huruvida någon nod lades till med flaggan för ostabil referens, vilket låter uppringaren undvika att lita på ett inaktuellt statiskt schema när formelreferenser kan ändras vid utvärderingstid; grafen slår inte upp de föränderliga referenserna själv
TXLSWorkspaceDepGraph.NodeCount räknar formelnoder, TXLSWorkspaceDepGraph.ReferenceCount räknar kopierade referenser, och TXLSWorkspaceDepGraph.EdgeCount rapporterar byggda beroendekanter; anropa BuildEdges innan kantstatistiken konsumeras
TXLSWorkspaceDepGraph.WorkbookCount räknar internerade arbetsboksidentiteter, inklusive identiteter som införts av referenser, och TXLSWorkspaceDepGraph.WorkbookIdentities uppräknar dem via nollbaserat index; de här identitetssträngarna är grafnycklar i stället för bevis på att en extern fil lästs in
TXLSWorkspaceDepGraph.ComponentCount rapporterar antalet starkt sammanhängande komponenter efter komponentbyggnaden, som utlöses av MarkCyclesDirty, DirtyTopoOrder eller komponentåtkomst; varje Components-post tillhandahåller NodeStart, NodeCount och IsCycle
TXLSWorkspaceDepGraph.ComponentNodes exponerar den utplattade nollbaserade nodindexmatrisen för de komponenterna, indexerad från en komponents NodeStart till NodeStart + NodeCount - 1; räkningar och indexerade poster beskriver den aktuella grafen och bör hämtas på nytt efter en grafrekonstruktion
Fortsätt med ytterligare XLSX-fasadmedlemmar och översikten av XLSX-fasaden för arbetsbokens vanliga ingångspunkter