Tyto veřejné členy podporují integrace, které zkoumají I/O, implementují serializátory, nebo koordinují výpočty napříč sešity, přičemž členy sešitu deklaruje lxHandleX a graf pracovního prostoru lxDepGraph
Obyčejné aplikace by nejdřív měly používat formátování buněk, SaveAs, Recalculate a API pracovního prostoru externích sešitů; registrace ve fondech stylů a plánování grafu vyžadují stejné konvence indexů a životnosti jako serializátory a výpočetní stroj knihovny
TXLSXWorkbook.OnReadCell dostává při parsování XLSX index listu, řádek, sloupec, uloženou hodnotu i vzorec každé materializované buňky, s zapisovatelným příznakem Cancel; TXLSXWorkbook.OnWriteCell dostává před serializací buňky zapisovatelnou výstupní hodnotu plus příznaky Skip a Cancel, takže hostitelská aplikace umí výstup transformovat či vynechat, aniž by nahradila API sešitu přímým stream API
Obě zpětná volání používají souřadnice listů i buněk od jedničky a jejich deklarované typy jsou TXLSXCellReadEvent a TXLSXCellWriteEvent; zpětná volání běží uvnitř aktivní I/O operace, takže ze zpětného volání nespouštějte jinou operaci nad stejným sešitem
TXLSXWorkbook.RecoveryMode má výchozí hodnotu False a umožňuje, aby se podporovaná selhání parsování XML listů stala varovnou diagnostikou, zatímco otevírání pokračuje, potenciálně s jen částečně obnoveným obsahem listů; obnovu z nečitelného ZIP balíčku negarantuje, takže si před uložením prohlédněte diagnostiku i obnovená data
TXLSXWorkbook.FireProgress rozesílá fázi, stav, aktuální počet i celkový počet přiřazeným handlerům průběhu, přičemž starší handler dostává notifikace o práci a rozšířený handler všechny stavy; rozšířený handler může požádat o zrušení, jenže notifikace konce zápisu už nedokáže vrátit potvrzený výstup
TXLSXWorkbook.AddDiagnostic přidá a vrátí diagnostiku vlastněnou sešitem, zaznamená dodaný kód, závažnost, operaci, zprávu, nativní kód, kontext listu i název části balíčku, zkopíruje název třídy výjimky, když je dodaná, a zavolá OnDiagnostic; výjimku si nevlastní a nevyvolává ji
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas má výchozí hodnotu False a přepne CSV výstup u buněk se vzorci z výsledků vzorců na text vzorců; výstupní výsledek se pokusí vzorec vyhodnotit a při selhání sáhne po uloženém textu či hodnotě buňky; TXLSXWorkbook.CSVQuoteAllStrings má také výchozí False a vynutí uvozovky kolem textových polí, zatímco čísla, data, logické hodnoty, Null i Empty zůstávají u normálních pravidel pro uvozovky
TXLSXWorkbook.LastSaveUsedStreaming hlásí, zda poslední připravené ukládání použilo streamování listů, zatímco TXLSXWorkbook.LastSavePeakRowXmlChars hlásí největší bufferovaný fragment řádkového XML, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars hlásí kombinované bufferované XML listů a TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars hlásí největší sledovaný pomocný XML fragment; jde o počty znaků z instrumentace serializátoru, nikoli o měření celkové paměti procesu a ODS výstup cestu streamování listů XLSX nepoužívá
TXLSXWorkbook.TryCopyPreservedPart se pokusí zkopírovat způsobilou zachovanou zdrojovou část, včetně její komprimované reprezentace, do volajícím dodaného cílového TZipArchive a vrátí True při zkopírování nebo False, když je potřeba normální serializace; zdroj musí zůstat dostupný z otevření podloženého souborem a chybějící či výslovně vyřazené části se zkopírovat nedají
Cílový archiv vlastní volající a musí jej normálně dokončit; selhání rollbacku komprimované kopie může i tak vyvolat výjimku a tento pomocník ani nesestaví kompletní balíček sešitu, ani neaktualizuje jeho relace či content typy
TXLSXWorkbook.SaveAsEncryptedAgile přijme název souboru a neprázdné heslo, serializuje XLSX balíček v paměti a zapíše Agile šifrovaný kontejner, s návratem 1 při úspěchu či -1 při nahlášeném selhání; volitelné VerifyEncryptedSave po zápisu provede kontrolu opětovným otevřením a metoda potřebuje paměť jak pro nešifrovaný balíček, tak pro jeho serializované bajty
TXLSXWorkbook.VerifyEncryptedFile otevře dodaný soubor a heslo v dočasném sešitu a vrátí True jen tehdy, když to otevření uspěje, s převodem výjimek na False; kontroluje čitelnost, nikoli porovnání každé buňky s aktuálním sešitem, a u nešifrovaného XLSX vstupu se řídí normálním chováním OpenEncrypted
TXLSXWorkbook.DocSecurity uchovává bitové pole rozšířených vlastností dokumentu: 1 znamená ochranu heslem, 2 doporučení jen pro čtení, 4 vynucený stav jen pro čtení a 8 uzamčení anotací; tyto metadata bity samy o sobě neaplikují šifrování ani omezení přístupu
TXLSXWorkbook.DocPropsTouched je příznak jen pro čtení, který zapisovače vlastností dokumentu používají k rozhodnutí, jestli byly sledované vlastnosti nakonfigurovány; nastavují ho sledované settery vlastností jako Title, zatímco přímo přiřazená rozšířená metadata ho automaticky nenastaví
TXLSXWorkbook.WorkbookProtectHash zpřístupňuje načtený či vygenerovaný starší hash ochrany sešitu, normálně čtyři hexadecimální číslice nebo prázdný řetězec, když hash hesla neexistuje; ochranu měňte metodami ochrany sešitu, nikoli přiřazením této hodnoty jen pro čtení, a ochranu struktury sešitu si udržujte odděleně od šifrovaného úložiště souboru
TXLSXWorkbook.ThemeMajorFont a TXLSXWorkbook.ThemeMinorFont zpřístupňují titulkové a textové písmo načtené z motivu a při generování výchozího Office motivu tyto názvy přepíší; doslovně zachovaný motiv má přednost před těmito nastaveními názvů písem
TXLSXWorkbook.DefaultTableStyleName a TXLSXWorkbook.DefaultPivotStyleName roundtripují výchozí názvy uložené v tabulce stylů pro nově vkládané excelové tabulky a kontingenční tabulky; jejich přiřazení přímo nezmění formátování každého existujícího objektu
TXLSXWorkbook.ResolveTableStyle vrátí podle názvu vlastní styl vlastněný sešitem, jinak resolvuje a cacheuje podporované vestavěné TableStyleLight1 až TableStyleLight21, TableStyleMedium1 až TableStyleMedium28 nebo TableStyleDark1 až TableStyleDark11 a pro neznámý název vrátí nil; vrácený styl neuvolňujte
TXLSXWorkbook.FastStyleAppend má výchozí hodnotu False a při hromadné tvorbě nechá přeskočit skeny na duplicity ve fondech stylů i běžnou registraci kompozitních stylů, tedy obětuje větší tabulku stylů za rychlejší vkládání, když vzniká mnoho odlišných stylů
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 zaregistruje kombinované indexy písma, výplně, ohraničení, číselného formátu, zarovnání a ochrany a vrátí absolutní index cellXfs, nikoli slot kompozitního fondu; sedmiargumentové přetížení přijme vestavěné ID číselného formátu, které má přednost před dodaným indexem vlastního formátu, s nulou znamenající žádný přepis
TXLSXWorkbook.RegisterLinkedCompositeXf navíc zaznamená ID nadřazeného style XF a formátové části napojené na toho rodiče a vede samostatné položky pro různé kombinace rodiče či napojení; také vrací absolutní index cellXfs
TXLSXWorkbook.CompositeXfBase vrátí první absolutní kompozitní index, vypočtený z aktuálních jednorozměrných fondů stylů, zatímco TXLSXWorkbook.CompositeXfCount počítá zaregistrované kompozitní položky; slot fondu používaný GetCompositeXf je absolutní index mínus základ a základ se může změnit, když tyto fondy narostou, takže tyto hodnoty patří aktuálnímu serializačnímu stavu
TXLSXWorkbook.RegisterCondDxf zaregistruje vypůjčenou referenci TXLSDxfStyle a vrátí její ID diferenciálního stylu od nuly, přičemž pro stejnou referenci objektu znovu použije existující ID; objekt udržujte naživu, dokud ho serializace používá
TXLSXWorkbook.ResetCondDxfs vymaže počet aktivního registru, aniž by uvolnila vypůjčené styly, a TXLSXWorkbook.CondDxfCount hlásí ten počet; příprava ukládání tento registr přestaví, takže tato ID nepersistujte nezávisle na balíčku, který se zapisuje
TXLSXWorkbook.PivotCaches je kolekce TXLSPivotCaches vlastněná sešitem a sdílená listovými kontingenčními tabulkami; AddPivotTable znovu použije odpovídající zdrojovou mezipaměť, nebo ji vytvoří, a RefreshPivotCache aktualizuje identifikovanou mezipaměť se zachováním podporovaných identit členů
TXLSXWorkbook.RecalcThreads má výchozí hodnotu nula, přičemž nula či jedna znamená sériový přepočet a větší hodnoty zapnou pracovní vyhodnocování nezávislých vzorcových hranic; sešity s dynamickými poli použijí sériový průchod bez ohledu na toto nastavení, uzly datových tabulek what-if zůstávají sériové a handlery uživatelských funkcí používané workery musí být thread-safe
TXLSXWorkbook.SolveCycleIteratively je pokročilý vstupní bod, který normálně volá Recalculate, když je povolena iterace, a konzumuje indexy uzlů z aktuálního grafu závislostí daného sešitu a vyhodnocuje cyklické uzly v dodaném TList; indexy z grafu jiného pracovního prostoru či jiného sešitu nejsou zaměnitelné
Solver používá IterateCount a IterateDelta, zachová konečné hodnoty, i když se dosáhne limitu iterací, a vrátí lxOk, aniž by certifikoval konvergenci; členové cyklů dynamických polí vrátí lxErrorCircumRef a argument CycleCount v signatuře nenahrazuje klasifikaci cyklů na uzlech grafu
TXLSWorkspaceDepGraph ukládá vzorcové závislosti napříč volajícím dodanými identitami sešitů a listů, aniž by otevírala sešity či vyhodnocovala vzorce; sestavte graf z aktuálních vzorců a resolvovaných odkazů a poté jej přestavte po strukturálních či vzorcových změnách, které tyto odkazy zneplatní
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 přidá uzel vzorce a vrátí jeho index od nuly, přičemž zkopíruje dodané odkazy, aniž by vlastnil jejich seznam; indexy listů jsou od jedničky, zatímco souřadnice řádků a sloupců, včetně pravého dolního rohu včetného výstupního obdélníku, jsou kalkulátorové souřadnice od nuly
TXLSWorkspaceDepReferenceList.Add přidá record resolvovaného odkazu na buňku, oblast či definovaný název, TXLSWorkspaceDepReferenceList.Items čte tyto recordy podle indexu od nuly a TXLSWorkspaceDepReferenceList.Clear resetuje seznam pro opětovné použití; tento vstupní seznam vlastní volající a může ho vymazat či uvolnit poté, co AddNode zkopíruje jeho položky
TXLSWorkspaceDepGraph.BuildEdges resolvuje uložené odkazy na buňky a oblasti vůči obdélníkům výstupů vzorců; odkazy označené LookupScan propagují zneplatnění, ale nevynucují pořadí vyhodnocování ani se neúčastní detekce cyklů
TXLSWorkspaceDepGraph.NodeIndexOf resolvuje sešit, list, řádek a sloupec na index uzlu od nuly nebo -1 při absenci, a to pomocí názvu listu, je-li dostupný, s deklarovaným indexem listu jako zálohou
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName vymaže dodaný nenil TList a naplní ho indexy uzlů, které přímo odkazují na pojmenovaný symbol v určeném sešitu a rozsahu, přičemž záporný index rozsahu odpovídá všem rozsahům; položky jsou zakódované jako Pointer(NativeInt(NodeIndex)), takže nil položka seznamu může reprezentovat uzel nula
TXLSWorkspaceDepGraph.BeginDirtyGeneration spustí novou generaci, resetuje počet aktivních dirty uzlů i příznaky blokace cykly a zneaktivní dřívější dirty razítka; zavolejte ji, než označíte uzly pro nový průchod přepočtu
TXLSWorkspaceDepGraph.MarkAllDirty označí každý uzel aktuální generace; TXLSWorkspaceDepGraph.MarkWorkbookDirty nasadí uzly patřící identifikovanému sešitu a uzly, které se na něj odkazují, a pak to propaguje na závislé, zatímco TXLSWorkspaceDepGraph.MarkVolatileDirty nasadí volatilní uzly a TXLSWorkspaceDepGraph.MarkCyclesDirty nasadí detekované cyklické komponenty, a to včetně propagace jejich zneplatnění
TXLSWorkspaceDepGraph.IsNodeDirty hlásí, zda platný uzel nese razítko aktuální generace, a u neplatného indexu vrátí False; TXLSWorkspaceDepGraph.DirtyGeneration zpřístupňuje to razítko a TXLSWorkspaceDepGraph.DirtyNodeCount počítá uzly označené v aktivní generaci
TXLSWorkspaceDepGraph.DirtyTopoOrder vyžaduje nenil TList vlastněný volajícím, vymaže jej a naplní dirty indexy uzlů v pořadí závislostí, s vyloučením dirty cyklických uzlů a uzlů blokovaných těmito cykly; její dva výstupní počty odliší členy cyklů od blokovaných navazujících uzlů a položky seznamu používají tutéž konvenci pointerem kódovaného indexu od nuly
TXLSWorkspaceDepGraph.HasRefUnstable hlásí, zda byl nějaký uzel přidán s příznakem reference-unstable, což volajícímu umožní nespoléhat na zastaralý statický harmonogram, když se vzorcové odkazy můžou měnit až při vyhodnocování; graf tyto měnící se odkazy sám neresolvuje
TXLSWorkspaceDepGraph.NodeCount počítá uzly vzorců, TXLSWorkspaceDepGraph.ReferenceCount počítá zkopírované odkazy a TXLSWorkspaceDepGraph.EdgeCount hlásí postavené hrany závislostí; před konzumací statistik hran zavolejte BuildEdges
TXLSWorkspaceDepGraph.WorkbookCount počítá internované identity sešitů, včetně identit zavedených odkazy, a TXLSWorkspaceDepGraph.WorkbookIdentities je vyčísluje podle indexu od nuly; tyto identity řetězců jsou klíče grafu, nikoli důkaz, že externí soubor byl načten
TXLSWorkspaceDepGraph.ComponentCount hlásí počet silně souvislých komponent po jejich sestavení, které spustí MarkCyclesDirty, DirtyTopoOrder nebo přístup ke komponentám; každý record Components dodává NodeStart, NodeCount a IsCycle
TXLSWorkspaceDepGraph.ComponentNodes zpřístupňuje zploštělé pole indexů uzlů od nuly pro ty komponenty, indexované od NodeStart komponenty do NodeStart + NodeCount - 1; počty i indexované recordy popisují aktuální graf a po jeho přestavbě je znovu získejte
Pokračujte tématy dodateční členové fasády XLSX a přehled fasády XLSX, kde najdete obyčejné vstupní body sešitu